Methods, systems and apparatuses for multi-directional still pictures and/or multi-directional motion pictures

ABSTRACT

The disclosure is generally directed to methods, systems and apparatuses for multi-directional still pictures and/or multi-directional motion pictures and their applications on mobile, embedded, and other computing devices and applications.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of, and claims priority under 35U.S.C. §120 from, nonprovisional U.S. patent application Ser. No.14/138,101 entitled “METHODS, SYSTEMS AND APPARATUSES FORMULTI-DIRECTIONAL STILL PICTURES AND/OR MULTI-DIRECTIONAL MOTIONPICTURES”, filed on Dec. 22, 2013. The disclosure of the foregoingdocument is incorporated herein by reference.

FIELD

The disclosure generally relates to digital imaging. For example, thedisclosure may include methods, systems and apparatuses formulti-directional still pictures and/or multi-directional motionpictures.

BACKGROUND

A still picture generally represents a photographer's choice of a fixedview of an object. Still pictures do not enable an intuitive portrayalof most objects, nor an interactive way in which a viewer may want toexperience an object on today's mobile, embedded, and other computingdevices.

Sequentially changing pictures (i.e. film, etc.) are merely a view ofwhat the director of the film wanted viewers to see. Predefined sequenceof changing pictures makes film inflexible from the viewer's standpoint.Usually, the only operations viewers can perform on a film are playing,pausing, forwarding and rewinding the sequence of pictures. Theseimaging and viewing options are limiting to the user, failing to enablethe user with interactive viewing and flexible operating options.

SUMMARY OF THE INVENTION

In some aspects, the disclosure relates to a system for usingmulti-directional motion pictures. The system may include a processorand an interface, coupled to the processor, for receiving a collectionof multi-directional motion pictures each multi-directional motionpicture associated with a location of a represented object and includingone or more differently directed streams of time stamped still picturesand one or more links to other one or more multi-directional motionpictures. The system may further include a display, coupled to theprocessor, for rendering a first stream of time stamped still picturesof a first multi-directional motion picture. The system may furtherinclude an input device, coupled to the processor, for receiving aselection of a first link of the first multi-directional motion picture,the first link associated with a second multi-directional motionpicture. The system may further include a tracker, coupled to theprocessor, for determining a time stamp of a currently displayed stillpicture, wherein the processor may be programmed to cause the display torender a first stream of time stamped still pictures of the secondmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of the currentlydisplayed still picture.

In some embodiments, the represented object includes a physical objector a computer generated object. The computer generated object mayinclude an object of a 3D game, an object of a CAD application, or anobject of a CAM application. In further embodiments, the location of arepresented object includes a location corresponding to a shape of therepresented object.

In some embodiments, each of the one or more links to other one or moremulti-directional motion pictures includes a differently directed linksuch as a forward link, a backward link, a right link, or a left link.In other embodiments, each of the one or more links to other one or moremulti-directional motion pictures includes a link to an outsideapplication or process. In further embodiments, each of the one or moredifferently directed streams of time stamped still pictures includes adifferently directed view from a location of the represented object suchas a forward view, a backward view, a right view, or a left view. Infurther embodiments, the still pictures of each of the one or moredifferently directed streams of time stamped still pictures include thestill pictures ordered in a sequence. In further embodiments, each stillpicture of the one or more differently directed streams of time stampedstill pictures includes an incremental time stamp indicating itsposition in a time continuum. In further embodiments, each of the one ormore differently directed streams of time stamped still picturesincludes a digital video file comprising a stream of time stamped stillpictures or a stream of files each comprising a time stamped stillpicture. The digital video file comprising a stream of time stampedstill pictures may include a MPEG, an AVI, a FLV, a MOV, a RM, a SWF, aWMV, a DivX, or other digital video file. The stream of files eachcomprising a time stamped still picture may include a digital picturefile such as a BMP, a JPEG, a GIF, a TIFF, a PNG, a PDF, or otherdigital picture file.

In some embodiments, the input device includes a means for a user toinput a selection of one or more of a forward, a backward, a right, anda left links to other one or more multi-directional motion pictures. Infurther embodiments, the input device includes a means for a user toinput a selection of one or more of a forward, a backward, a right, anda left differently directed streams of time stamped still pictures.

In certain embodiments, the input device is further configured toreceive a selection of a second stream of time stamped still pictures ofthe second multi-directional motion picture, wherein the tracker isconfigured to determine a time stamp of a currently displayed stillpicture, and the processor is further programmed to cause the display torender the second stream of time stamped still pictures of the secondmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of the currentlydisplayed still picture.

In some embodiments, the system further comprises a maze-like orsequence-like data structure for organizing the collection ofmulti-directional motion pictures.

In some aspects, the disclosure relates to a non-transitory computerreadable medium storing a program causing a computer to execute aninterface of a system for using multi-directional motion pictures. Theprogram may comprise an interface of a system for usingmulti-directional motion pictures configured to receive a collection ofmulti-directional motion pictures each multi-directional motion pictureassociated with a location of a represented object and including one ormore differently directed streams of time stamped still pictures and oneor more links to other one or more multi-directional motion pictures.The interface may further be configured to display, on the computingdevice, a first stream of time stamped still pictures of a firstmulti-directional motion picture. The interface may further beconfigured to: receive a selection of a first link of the firstmulti-directional motion picture, the first link associated with asecond multi-directional motion picture, determine a time stamp of acurrently displayed still picture, and display, on the computing device,a first stream of time stamped still pictures of the secondmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of the currentlydisplayed still picture. The interface may further be configured to:receive a selection of a second stream of time stamped still pictures ofthe second multi-directional motion picture, determine a time stamp of acurrently displayed still picture, and display, on the computing device,the second stream of time stamped still pictures of the secondmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of the currentlydisplayed still picture.

In some aspects, the disclosure relates to a non-transitory computerreadable medium storing a program causing a computer to execute a systemfor using multi-directional motion pictures. The program may comprise asystem for using multi-directional motion pictures configured to store acollection of multi-directional motion pictures each multi-directionalmotion picture associated with a location of a represented object andincluding one or more differently directed streams of time stamped stillpictures and one or more links to other one or more multi-directionalmotion pictures. The system may further be configured to display, on thecomputing device, a first stream of time stamped still pictures of afirst multi-directional motion picture. The system may further beconfigured to: receive a selection of a first link of the firstmulti-directional motion picture, the first link associated with asecond multi-directional motion picture, determine a time stamp of acurrently displayed still picture, and display, on the computing device,a first stream of time stamped still pictures of the secondmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of the currentlydisplayed still picture. The system may further be configured to:receive a selection of a second stream of time stamped still pictures ofthe second multi-directional motion picture, determine a time stamp of acurrently displayed still picture, and display, on the computing device,the second stream of time stamped still pictures of the secondmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of the currentlydisplayed still picture.

In some embodiments, the processor is further programmed to combine theone or more differently directed streams of time stamped still picturesinto a combined stream of time stamped still pictures. In furtherembodiments, each multi-directional motion picture includes one or moremulti-directional motion picture angles, each multi-directional motionpicture angle associated with a link to a multi-directional motionpicture and indicating an angle to the multi-directional motion pictureassociated with the link. In certain embodiments, the processor isfurther programmed to combine the one or more differently directedstreams of time stamped still pictures into a combined stream of timestamped still pictures and approximate a link to a multi-directionalmotion picture from an angle of view of the combined stream of timestamped still pictures. In further embodiments, each multi-directionalmotion picture includes one or more multi-directional motion picturedistances, each multi-directional motion picture distance associatedwith a link to a multi-directional motion picture and indicating adistance to the multi-directional motion picture associated with thelink. In further embodiments, each multi-directional motion pictureincludes an orientation. The orientation may include an absolute or arelative orientation.

In some embodiments, each multi-directional motion picture includes acoordinate of the associated location of the represented object. Incertain embodiments, the interface is further configured to receive anautomatic pattern of movement including a sequence of references tomulti-directional motion pictures. The processor may further beprogrammed to sequentially process the multi-directional motion picturesreferenced in the sequence and to cause the display to render a firststream of time stamped still pictures of each sequentially processedmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of a currentlydisplayed still picture. The automatic pattern of movement may include atime period associated with each reference to a multi-directional motionpicture in the sequence, the time period used to control a length ofstay on each multi-directional motion picture before processing a nextmulti-directional motion picture in the sequence.

In some embodiments, the collection of multi-directional motion picturesincludes the collection of multi-directional motion pictures residing ona remote computing device. The remote computing device may include anapplication server or a network service server communicating with theprocessor via a network. The remote computing device may include acomputing device communicating with the processor via a peer-to-peernetwork.

In some embodiments, the input device includes a microphone forreceiving an audio input, and speech recognizer for interpreting theaudio input as selection of the one or more links to other one or moremulti-directional motion pictures or selection of the one or moredifferently directed streams of time stamped still pictures. The speechrecognizer may include a keyword spotting or a full lexicon speechrecognition. In further embodiments, the input device includes a tactiledevice for receiving a tactile input, and an interpreter forinterpreting the tactile input as selection of the one or more links toother one or more multi-directional motion pictures or selection of theone or more differently directed streams of time stamped still pictures.

In some embodiments, the processor is further programmed to detect amoving object or an action scene in the one or more differently directedstreams of time stamped still pictures. The detecting of a moving objector an action scene in the one or more differently directed streams oftime stamped still pictures may include associating the detected movingobject or the action scene with a multi-directional motion picture. Thedetecting of a moving object or an action scene in the one or moredifferently directed streams of time stamped still pictures may includealigning the detected moving object or the action scene with one or morereference points of the represented object and determining a coordinateof the detected moving object or the action scene.

In some embodiments, the interface is further configured to receive amap of locations of the represented object, each location of the mapassociated with a multi-directional motion picture and selectable by auser.

The system may further include a speaker, coupled to the processor, forgenerating an audio output associated with the one or more differentlydirected streams of time stamped still pictures. The system may furtherinclude a tactile output device, coupled to the processor, forgenerating a tactile output associated with the one or more differentlydirected streams of time stamped still pictures.

In some embodiments, each of the one or more differently directedstreams of time stamped still pictures includes a first-person view or athird-person view from a location of the represented object. In certainembodiments, the processor is further programmed to insert an avatarinto the one or more differently directed streams of time stamped stillpictures, each avatar representing a user of plurality users. Theprocessor may further be programmed to control one or more of theavatar's movement, appearance, and behavior.

In some aspects, the disclosure relates to a system for usingmulti-directional motion pictures. The system may include an interfaceof a system for using multi-directional motion pictures operating on acomputing device, the interface configured to receive a collection ofmulti-directional motion pictures each multi-directional motion pictureassociated with a location of a represented object and including one ormore differently directed streams of time stamped still pictures and oneor more links to other one or more multi-directional motion pictures.The interface may further be configured to display, on the computingdevice, a first stream of time stamped still pictures of a firstmulti-directional motion picture. The interface may further beconfigured to: receive a selection of a first link of the firstmulti-directional motion picture, the first link associated with asecond multi-directional motion picture, determine a time stamp of acurrently displayed still picture, and display, on the computing device,a first stream of time stamped still pictures of the secondmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of the currentlydisplayed still picture. The interface may further be configured to:receive a selection of a second stream of time stamped still pictures ofthe second multi-directional motion picture, determine a time stamp ofthe currently displayed still picture, and display, on the computingdevice, the second stream of time stamped still pictures of the secondmulti-directional motion picture starting with a still picture having anincrementally subsequent time stamp from the time stamp of the currentlydisplayed still picture. In some aspects, the disclosure relates to asystem for inserting an avatar into streams of time stamped stillpictures. The system may include a processor and an interface, coupledto the processor, for receiving a collection of multi-directional motionpictures each multi-directional motion picture associated with alocation of a represented object and each including one or moredifferently directed streams of time stamped still pictures and one ormore links to other one or more multi-directional motion pictures. Theprocessor may be programmed to: associate a user's avatar with a firstmulti-directional motion picture and insert the avatar's picture into afirst stream of time stamped still pictures of the firstmulti-directional motion picture. The system may further include acomparator, coupled to the processor, for identifying a region of thefirst stream of time stamped still pictures of the firstmulti-directional motion picture around a position where the avatar'spicture is inserted, and incrementally resizing the identified region.The comparator may further be configured to compare subsets of a firststream of time stamped still pictures of a second multi-directionalmotion picture with the incrementally resized identified region, anddetermine that a subset of the first stream of time stamped stillpictures of the second multi-directional motion picture is sufficientlysimilar to an incrementally resized identified region to indicate a lineof sight. The processor may further be programmed to: resize theavatar's picture proportional to the incrementally resized identifiedregion to portray the avatar in perspective, and insert the resizedavatar's picture into the first stream of time stamped still pictures ofthe second multi-directional motion picture in a position where thesubset sufficiently similar to the incrementally resized identifiedregion is found.

In some aspects, the disclosure relates to a system for inserting anavatar into streams of time stamped still pictures. The system mayinclude an interface of a system for inserting an avatar into streams oftime stamped still pictures operating on a computing device, theinterface configured to receive a collection of multi-directional motionpictures each multi-directional motion picture associated with alocation of a represented object and each including one or moredifferently directed streams of time stamped still pictures and one ormore links to other one or more multi-directional motion pictures. Theinterface may further be configured to associate a user's avatar with afirst multi-directional motion picture and insert the avatar's pictureinto a first stream of time stamped still pictures of the firstmulti-directional motion picture. The interface may further beconfigured to: identify a region of the first stream of time stampedstill pictures of the first multi-directional motion picture around aposition where the avatar's picture is inserted, incrementally resizethe identified region, and compare subsets of a first stream of timestamped still pictures of a second multi-directional motion picture withthe incrementally resized identified region. The interface may furtherbe configured to: determine that a subset of the first stream of timestamped still pictures of the second multi-directional motion picture issufficiently similar to an incrementally resized identified region toindicate a line of sight, resize the avatar's picture proportional tothe incrementally resized identified region to portray the avatar inperspective, and insert the resized avatar's picture into the firststream of time stamped still pictures of the second multi-directionalmotion picture in a position where the subset sufficiently similar tothe incrementally resized identified region is found,

In some aspects, the disclosure relates to a system for generatingmulti-directional motion pictures. The system may include a processorand an interface, coupled to the processor, for receiving one or morestreams of time stamped still pictures each stream of time stamped stillpictures depicting a differently directed view from a location ofplurality locations of a represented object. The system may furtherinclude an assembler, coupled to the interface, for generating a firstmulti-directional motion picture to include the one or more streams oftime stamped still pictures from a first location and a secondmulti-directional motion picture to include the one or more streams oftime stamped still pictures from a second location, and adding a linkwith the second multi-directional motion picture to the firstmulti-directional motion picture and adding a link with the firstmulti-directional motion picture to the second multi-directional motionpicture, the first location being adjacent to the second location.

In some embodiments, each still picture of the one or more streams oftime stamped still pictures includes an incremental time stampindicating its position in a time continuum. In further embodiments, thelocation of plurality locations of a represented object includes alocation corresponding to a shape of the represented object.

The system may further include one or more motion picture takingequipment, coupled to the processor, for capturing the one or morestreams of time stamped still pictures. The one or more motion picturetaking equipment may include one or more motion picture cameras forsimultaneous capturing of the one or more streams of time stamped stillpictures. The one or more motion picture taking equipment may includeone or more multi-directional motion picture taking devices forsimultaneous capturing of the one or more streams of time stamped stillpictures, each multi-directional motion picture taking device associatedwith a multi-directional motion picture. The one or moremulti-directional motion picture taking devices may include one or moremotion picture cameras such as forward motion picture camera, backwardmotion picture camera, right motion picture camera, and left motionpicture camera. The one or more motion picture taking equipment mayinclude a means to mount the one or more motion picture taking equipmentonto an object or a surface. The one or more motion picture takingequipment may include a means to connect the one or more motion picturetaking equipment with the processor.

In some embodiments, the one or more motion picture taking equipmentincludes a means for detecting a moving object or an action scene. Infurther embodiments, the one or more motion picture taking equipmentincludes a means for aligning the one or more motion picture takingequipment toward the detected moving object or an action scene. Infurther embodiments, the one or more motion picture taking equipmentincludes a means for focusing the one or more motion picture takingequipment on the detected moving object or an action scene.

In some embodiments, the processor is further programmed to detect theone or more streams of time stamped still pictures from the firstlocation and the one or more streams of time stamped still pictures fromthe second location. In certain embodiments, the processor is furtherprogrammed to search for the one or more streams of time stamped stillpictures of the represented object within a collection of streams oftime stamped still pictures. In further embodiments, the processor isfurther programmed to detect a link between the first multi-directionalmotion picture and the second multi-directional motion picture.

The system may further include an input device for receiving a user'slink addition request, wherein the assembler may further be configuredto add a new link with another multi-directional motion picture to thefirst or the second multi-directional motion picture. The input devicemay further be configured to receive the user's link modificationrequest, wherein the assembler may further be configured to modify alink of the first or the second multi-directional motion picture.

In some aspects, the disclosure relates to a non-transitory computerreadable medium storing a program causing a computer to execute aninterface of a system for generating multi-directional motion pictures.The program may include an interface of a system for generatingmulti-directional motion pictures configured to receive one or morestreams of time stamped still pictures each stream of time stamped stillpictures depicting a differently directed view from a location ofplurality locations of a represented object. The interface may furtherbe configured to: generate a first multi-directional motion picture toinclude the one or more streams of time stamped still pictures from afirst location, generate a second multi-directional motion picture toinclude the one or more streams of time stamped still pictures from asecond location, and add a link with the second multi-directional motionpicture to the first multi-directional motion picture and add a linkwith the first multi-directional motion picture to the secondmulti-directional motion picture, the first location being adjacent tothe second location. The interface may further be configured to receivea user's link addition request and add a new link with anothermulti-directional motion picture to the first or the secondmulti-directional motion picture. The interface may further beconfigured to receive a user's link modification request and modify alink of the first or the second multi-directional motion picture.

In some aspects, the disclosure relates to a non-transitory computerreadable medium storing a program causing a computer to execute a systemfor generating multi-directional motion pictures. The program mayinclude a system for generating multi-directional motion picturesconfigured to store one or more streams of time stamped still pictureseach stream of time stamped still pictures depicting a differentlydirected view from a location of plurality locations of a representedobject. The system may further be configured to: generate a firstmulti-directional motion picture to include the one or more streams oftime stamped still pictures from a first location, generate a secondmulti-directional motion picture to include the one or more streams oftime stamped still pictures from a second location, and add a link withthe second multi-directional motion picture to the firstmulti-directional motion picture and add a link with the firstmulti-directional motion picture to the second multi-directional motionpicture, the first location being adjacent to the second location. Thesystem may further be configured to receive a user's link additionrequest and add a new link with another multi-directional motion pictureto the first or the second multi-directional motion picture. The systemmay further be configured to receive a user's link modification requestand modify a link of the first or the second multi-directional motionpicture.

In some aspects, the disclosure relates to a system for generatingmulti-directional motion pictures. The system may include an interfaceof a system for generating multi-directional motion pictures operatingon a computing device, the interface configured to receive one or morestreams of time stamped still pictures each stream of time stamped stillpictures depicting a differently directed view from a location ofplurality locations of a represented object. The interface may furtherbe configured to: generate a first multi-directional motion picture toinclude the one or more streams of time stamped still pictures from afirst location, generate a second multi-directional motion picture toinclude the one or more streams of time stamped still pictures from asecond location, and add a link with the second multi-directional motionpicture to the first multi-directional motion picture and add a linkwith the first multi-directional motion picture to the secondmulti-directional motion picture, the first location being adjacent tothe second location. The interface may further be configured to receivea user's link addition request and add a new link with anothermulti-directional motion picture to the first or the secondmulti-directional motion picture. The interface may further beconfigured to receive a user's link modification request and modify alink of the first or the second multi-directional motion picture.

In some aspects, the disclosure relates to a system for detectingstreams of time stamped still pictures. The system may include aprocessor and an interface, coupled to the processor, for receiving acollection of streams of time stamped still pictures. The system mayfurther include a comparator, coupled to the processor, for comparingsubsets of a first stream of time stamped still pictures and subsets ofa second stream of time stamped still pictures, the compared subsetsbeing near opposite edges of the first and the second streams of timestamped still pictures, and determining that a subset of the firststream of time stamped still pictures is sufficiently similar to asubset of the second stream of time stamped still pictures to indicatean overlapping field of view between the two streams of time stampedstill pictures. The system may further include an assembler, coupled tothe processor, for generating a first multi-directional motion pictureto include the first and the second streams of time stamped stillpictures, the first and the second streams of time stamped stillpictures depicting a first and a second differently directed views froma first location of a represented object. The comparator may further beconfigured to: compare subsets of the first stream of time stamped stillpictures and subsets of a third stream of time stamped still pictures,the compared subsets being near opposite edges of the first and thethird streams of time stamped still pictures, and determine that asubset of the first stream of time stamped still pictures issufficiently similar to a subset of the third stream of time stampedstill pictures to indicate an overlapping field of view between the twostreams of time stamped still pictures, wherein the assembler mayfurther be configured to add the third stream of time stamped stillpictures to the first multi-directional motion picture, the third streamof time stamped still pictures depicting a third differently directedview from the first location of the represented object.

In some aspects, the disclosure relates to a system for detectingstreams of time stamped still pictures. The system may include aninterface of a system for detecting streams of time stamped stillpictures operating on a computing device, the interface configured toreceive a collection of streams of time stamped still pictures. Theinterface may further be configured to: compare subsets of a firststream of time stamped still pictures and subsets of a second stream oftime stamped still pictures, the subsets being near opposite edges ofthe first and the second streams of time stamped still pictures,determine that a subset of the first stream of time stamped stillpictures is sufficiently similar to a subset of the second stream oftime stamped still pictures to indicate an overlapping field of viewbetween the two streams of time stamped still pictures, and generate afirst multi-directional motion picture to include the first and thesecond streams of time stamped still pictures, the first and the secondstreams of time stamped still pictures depicting a first and a seconddifferently directed views from a first location of a representedobject. The interface may further be configured to: compare subsets ofthe first stream of time stamped still pictures and subsets of a thirdstream of time stamped still pictures, the subsets being near oppositeedges of the first and the third streams of time stamped still pictures,determine that a subset of the first stream of time stamped stillpictures is sufficiently similar to a subset of the third stream of timestamped still pictures to indicate an overlapping field of view betweenthe two streams of time stamped still pictures, and add the third streamof time stamped still pictures to the first multi-directional motionpicture, the third stream of time stamped still pictures depicting athird differently directed view from the first location of therepresented object.

In some aspects, the disclosure relates to a system for detecting linksamong multi-directional motion pictures. The system may include aprocessor and an interface, coupled to the processor, for receiving acollection of multi-directional motion pictures each multi-directionalmotion picture associated with a location of a represented object andincluding one or more differently directed streams of time stamped stillpictures. The system may further include a comparator, coupled to theprocessor, for incrementally resizing a first stream of time stampedstill pictures of the first multi-directional motion picture, comparingsubsets of a first stream of time stamped still pictures of a secondmulti-directional motion picture with the incrementally resized firststream of time stamped still pictures of the first multi-directionalmotion picture, and determining that a subset of the first stream oftime stamped still pictures of the second multi-directional motionpicture is sufficiently similar to an incrementally resized first streamof time stamped still pictures of the first multi-directional motionpicture to indicate a line of sight. The system may further include anassembler, coupled to the processor, for adding a link with the secondmulti-directional motion picture to the first multi-directional motionpicture and adding a link with the first multi-directional motionpicture to the second multi-directional motion picture.

In some aspects, the disclosure relates to a system for detecting linksamong multi-directional motion pictures. The system may include aninterface of a system for detecting links among multi-directional motionpictures operating on a computing device, the interface configured toreceive a collection of multi-directional motion pictures eachmulti-directional motion picture associated with a location of arepresented object and including one or more differently directedstreams of time stamped still pictures. The interface may further beconfigured to: incrementally resize a first stream of time stamped stillpictures of the first multi-directional motion picture. The interfacemay further be configured to: compare subsets of a first stream of timestamped still pictures of a second multi-directional motion picture withthe incrementally resized first stream of time stamped still pictures ofthe first multi-directional motion picture, determine that a subset ofthe first stream of time stamped still pictures of the secondmulti-directional motion picture is sufficiently similar to anincrementally resized first stream of time stamped still pictures of thefirst multi-directional motion picture to indicate a line of sight, andadd a link with the second multi-directional motion picture to the firstmulti-directional motion picture and add a link with the firstmulti-directional motion picture to the second multi-directional motionpicture.

In some aspects, the disclosure relates to a system for usingmulti-directional still pictures. The system may include a processor andan interface, coupled to the processor, for receiving a collection ofmulti-directional still pictures each multi-directional still pictureassociated with a location of a represented object and including one ormore differently directed still pictures and one or more links to otherone or more multi-directional still pictures. The system may furtherinclude a display, coupled to the processor, for rendering a first stillpicture depicting a first view from a location associated with a firstmulti-directional still picture. The system may further include an inputdevice, coupled to the processor, for receiving a selection of a firstlink of the first multi-directional still picture, the first linkassociated with a second multi-directional still picture, wherein theprocessor may be programmed to cause the display to render a first stillpicture depicting a first view from a location associated with thesecond multi-directional still picture.

In some embodiments, the represented object includes a physical objector a computer generated object. The computer generated object mayinclude an object of a 3D game, an object of a CAD application, or anobject of a CAM application. In further embodiments, the location of arepresented object includes a location corresponding to a shape of therepresented object.

In some embodiments, each of the one or more links to other one or moremulti-directional still pictures includes a differently directed linksuch as a forward link, a backward link, a right link, or a left link.Each of the one or more links to other one or more multi-directionalstill pictures may include a link to an outside application or process.In further embodiments, each of the one or more differently directedstill pictures includes a differently directed view from a location ofthe represented object such as a forward view, a backward view, a rightview, or a left view. Each of the one or more differently directed stillpictures may include a digital picture file such as a BMP, a JPEG, aGIF, a TIFF, a PNG, a PDF, or other still picture file.

In some embodiments, the input device includes a means for a user toinput a selection of one or more of a forward, a backward, a right, anda left links to other one or more multi-directional still pictures. Infurther embodiments, the input device includes a means for a user toinput a selection of one or more of a forward, a backward, a right, anda left differently directed still pictures. The input device may furtherbe configured to receive a selection of a second still picture of thesecond multi-directional still picture, wherein the processor mayfurther be programmed to cause the display to render the second stillpicture depicting a second view from the location associated with thesecond multi-directional still picture.

The system may further include a maze-like or sequence-like datastructure for organizing the collection of multi-directional stillpictures.

In some embodiments, the processor is further programmed to combine theone or more differently directed still pictures into a combined stillpicture. In further embodiments, each multi-directional still pictureincludes one or more multi-directional still picture angles, eachmulti-directional still picture angle associated with a link to amulti-directional still picture and indicating an angle to themulti-directional still picture associated with the link. The processormay further be programmed to combine the one or more differentlydirected still pictures into a combined still picture and approximate alink to a multi-directional still picture from an angle of view of thecombined still picture. In further embodiments, each multi-directionalstill picture includes one or more multi-directional still picturedistances, each multi-directional still picture distance associated witha link to a multi-directional still picture and indicating a distance tothe multi-directional still picture associated with the link. In furtherembodiments, each multi-directional still picture includes anorientation. The orientation may include an absolute or a relativeorientation,

In some embodiments, each multi-directional still picture includes acoordinate of the associated location of the represented object. Incertain embodiments, the interface is further configured to receive anautomatic pattern of movement including a sequence of references tomulti-directional still pictures. The processor may further beprogrammed to sequentially process the multi-directional still picturesreferenced in the sequence and to cause the display to render a firststill picture of each sequentially processed multi-directional stillpicture. The automatic pattern of movement may include a time periodassociated with each reference to a multi-directional still picture inthe sequence, the time period used to control a length of stay on eachmulti-directional still picture before processing a nextmulti-directional still picture in the sequence.

In some embodiments, the collection of multi-directional still picturesincludes the collection of multi-directional still pictures residing ona remote computing device. The remote computing device may include anapplication server or a network service server communicating with theprocessor via a network. The remote computing device may include acomputing device communicating with the processor via a peer-to-peernetwork.

In some embodiments, the input device includes a microphone forreceiving an audio input, and speech recognizer for interpreting theaudio input as selection of the one or more links to other one or moremulti-directional still pictures or a selection of the one or moredifferently directed still pictures. The speech recognizer may include akeyword spotting or a full lexicon speech recognition. In furtherembodiments, the input device includes a tactile device for receiving atactile input, and an interpreter for interpreting the tactile input asselection of the one or more links to other one or moremulti-directional still pictures or a selection of the one or moredifferently directed still pictures.

In some embodiments, the interface is further configured to receive amap of locations of the represented object, each location of the mapassociated with a multi-directional still picture and selectable by auser.

The system may further include a speaker, coupled to the processor, forgenerating an audio output associated with the one or more differentlydirected still pictures. The system may further include a tactile outputdevice, coupled to the processor, for generating a tactile outputassociated with the one or more differently directed still pictures.

In some embodiments, each of the one or more differently directed stillpictures includes a first-person view or a third-person view from alocation of the represented object. In certain embodiments, theprocessor is further programmed to insert an avatar into the one or moredifferently directed still pictures, each avatar representing a user ofplurality users. The processor may further be programmed to control oneor more of the avatar's movement, appearance, and behavior.

In some aspects, the disclosure relates to a non-transitory computerreadable medium storing a program causing a computer to execute aninterface of a system for using multi-directional still pictures. Theprogram may include an interface of a system for using multi-directionalstill pictures configured to receive a collection of multi-directionalstill pictures each multi-directional still picture associated with alocation of a represented object and including one or more differentlydirected still pictures and one or more links to other one or moremulti-directional still pictures. The interface may further beconfigured to display, on the computing device, a first still picturedepicting a first view from a location associated with a firstmulti-directional still picture. The interface may further be configuredto: receive a selection of a first link of the first multi-directionalstill picture, the first link associated with a second multi-directionalstill picture, and display, on the computing device, a first stillpicture depicting a first view from a location associated with thesecond multi-directional still picture. The interface may further beconfigured to: receive a selection of a second still picture of thesecond multi-directional still picture, and display, on the computingdevice, the second still picture depicting a second view from thelocation associated with the second multi-directional still picture.

In some aspects, the disclosure relates to a non-transitory computerreadable medium storing a program causing a computer to execute a systemfor using multi-directional still pictures. The program may include asystem for using multi-directional still pictures configured to store acollection of multi-directional still pictures each multi-directionalstill picture associated with a location of a represented object andincluding one or more differently directed still pictures and one ormore links to other one or more multi-directional still pictures. Thesystem may further be configured to display, on the computing device, afirst still picture depicting a first view from a location associatedwith a first multi-directional still picture. The system may further beconfigured to: receive a selection of a first link of the firstmulti-directional still picture, the first link associated with a secondmulti-directional still picture, and display, on the computing device, afirst still picture depicting a first view from a location associatedwith the second multi-directional still picture. The system may furtherbe configured to: receive a selection of a second still picture of thesecond multi-directional still picture, and display, on the computingdevice, the second still picture depicting a second view from thelocation associated with the second multi-directional still picture.

In some aspects, the disclosure relates to a system for usingmulti-directional still pictures. The system may include an interface ofa system for using multi-directional still pictures operating on acomputing device, the interface configured to receive a collection ofmulti-directional still pictures each multi-directional still pictureassociated with a location of a represented object and including one ormore differently directed still pictures and one or more links to otherone or more multi-directional still pictures. The interface may furtherbe configured to display, on the computing device, a first still picturedepicting a first view from a location associated with a firstmulti-directional still picture. The interface may further be configuredto: receive a selection of a first link of the first multi-directionalstill picture, the first link associated with a second multi-directionalstill picture, and display, on the computing device, a first stillpicture depicting a first view from a location associated with thesecond multi-directional still picture. The interface may further beconfigured to: receive a selection of a second still picture of thesecond multi-directional still picture, and display, on the computingdevice, the second still picture depicting a second view from thelocation associated with the second multi-directional still picture.

In some aspects, the disclosure relates to a system for inserting anavatar into still pictures. The system may include a processor and aninterface, coupled to the processor, for receiving a collection ofmulti-directional still pictures each multi-directional still pictureassociated with a location of a represented object and including one ormore differently directed still pictures and one or more links to otherone or more multi-directional still pictures. The processor may beprogrammed to: associate a user's avatar with a first multi-directionalstill picture and insert the avatar's picture into a first still pictureof the first multi-directional still picture. The system may furtherinclude a comparator, coupled to the processor, for identifying a regionof the first still picture of the first multi-directional still picturearound a position where the avatar's picture is inserted, andincrementally resizing the identified region. The comparator may furtherbe configured to compare subsets of a first still picture of a secondmulti-directional still picture with the incrementally resizedidentified region, and determine that a subset of the first stillpicture of the second multi-directional still picture is sufficientlysimilar to an incrementally resized identified region to indicate a lineof sight. The processor may further be programmed to: resize theavatar's picture proportional to the incrementally resized identifiedregion to portray the avatar in perspective, and insert the resizedavatar's picture into the first still picture of the secondmulti-directional still picture in a position where the subsetsufficiently similar to the incrementally resized identified region isfound.

In some aspects, the disclosure relates to a system for inserting anavatar into still pictures. The system may include an interface of asystem for inserting an avatar into still pictures operating on acomputing device, the interface configured to receive a collection ofmulti-directional still pictures each multi-directional still pictureassociated with a location of a represented object and each includingone or more differently directed still pictures and one or more links toother one or more multi-directional still pictures. The interface mayfurther be configured to: associate a user's avatar with a firstmulti-directional still picture and insert the avatar's picture into afirst still picture of the first multi-directional still picture, andidentify a region of the first still picture of the firstmulti-directional still picture around a position where the avatar'spicture is inserted. The interface may further be configured to:incrementally resize the identified region, compare subsets of a firststill picture of a second multi-directional still picture with theincrementally resized identified region, and determine that a subset ofthe first still picture of the second multi-directional still picture issufficiently similar to an incrementally resized identified region toindicate a line of sight. The interface may further be configured to:resize the avatar's picture proportional to the incrementally resizedidentified region to portray the avatar in perspective, and insert theresized avatar's picture into the first still picture of the secondmulti-directional still picture in a position where the subsetsufficiently similar to the incrementally resized identified region isfound.

In some aspects, the disclosure relates to a system for generatingmulti-directional still pictures. The system may include a processor andan interface, coupled to the processor, for receiving one or more stillpictures each still picture depicting a differently directed view from afirst location of plurality locations of a represented object. Thesystem may further include an assembler, coupled to the processor, forgenerating a first multi-directional still picture to include the one ormore still pictures from the first location. The interface may furtherbe configured to receive one or more still pictures each depicting adifferently directed view from a second location of the representedobject, and the assembler may further be configured to: generate asecond multi-directional still picture to include the one or more stillpictures from the second location and to include a link with the firstmulti-directional still picture, the first location being adjacent tothe second location, and add a link with the second multi-directionalstill picture to the first multi-directional still picture.

In some embodiments, the location of plurality locations of arepresented object includes a location corresponding to a shape of therepresented object.

The system may further include one or more picture taking equipment,coupled to the processor, for capturing the one or more still pictures.The one or more picture taking equipment may include one or more camerasfor capturing of the one or more still pictures. The one or more picturetaking equipment may include one or more multi-directional still picturetaking devices for simultaneous capturing of the one or more stillpictures, each multi-directional still picture taking device associatedwith a multi-directional still picture. The one or moremulti-directional still picture taking devices may include one or morecameras such as forward camera, backward camera, right camera, and leftcamera. The one or more picture taking equipment may include a means tomount the one or more picture taking equipment onto an object or asurface. The one or more picture taking equipment may include a means toconnect the one or more picture taking equipment with the processor.

In some embodiments, the one or more picture taking equipment includes ameans for detecting a moving object or an action scene. The one or morepicture taking equipment may include a means for aligning the one ormore picture taking equipment toward the detected moving object or anaction scene. The one or more picture taking equipment may include ameans for focusing the one or more picture taking equipment on thedetected moving object or an action scene.

In some embodiments, the interface is further configured to guide a userin generating multi-directional still pictures in straight or curvedpaths of the represented object. In certain embodiments, the processoris further programmed to detect the one or more still pictures from thefirst location and the one or more still pictures from the secondlocation. The processor may further be programmed to search for the oneor more still pictures of the represented object within a collection ofstill pictures. The processor may further be programmed to detect a linkbetween the first multi-directional still picture and the secondmulti-directional still picture.

The system may further include an input device for receiving a user'slink addition request, wherein the assembler may further be configuredto add a new link with another multi-directional still picture to thefirst or the second multi-directional still picture. The input devicemay further be configured to receive the user's link modificationrequest, wherein the assembler may further be configured to modify alink of the first or the second multi-directional still picture.

In some aspects, the disclosure relates to a non-transitory computerreadable medium storing a program causing a computer to execute aninterface of a system for generating multi-directional still pictures.The program may include an interface of a system for generatingmulti-directional still pictures configured to: receive one or morestill pictures each still picture depicting a differently directed viewfrom a first location of plurality locations of a represented object,and generate a first multi-directional still picture to include the oneor more still pictures from the first location. The interface mayfurther be configured to: receive one or more still pictures eachdepicting a differently directed view from a second location of therepresented object, generate a second multi-directional still picture toinclude the one or more still pictures from the second location and toinclude a link with the first multi-directional still picture, the firstlocation being adjacent to the second location, and add a link with thesecond multi-directional still picture to the first multi-directionalstill picture. The interface may further be configured to receive auser's link addition request and add a new link with anothermulti-directional still picture to the first or the secondmulti-directional still picture. The interface may further be configuredto receive a user's link modification request and modify a link of thefirst or the second multi-directional still picture.

In some aspects, the disclosure relates to a non-transitory computerreadable medium storing a program causing a computer to execute a systemfor generating multi-directional still pictures. The program may includea system for generating multi-directional still pictures configured to:receive one or more still pictures each still picture depicting adifferently directed view from a first location of plurality locationsof a represented object, and generate a first multi-directional stillpicture to include the one or more still pictures from the firstlocation. The system may further be configured to: receive one or morestill pictures each depicting a differently directed view from a secondlocation of the represented object, generate a second multi-directionalstill picture to include the one or more still pictures from the secondlocation and to include a link with the first multi-directional stillpicture, the first location being adjacent to the second location, andadd a link with the second multi-directional still picture to the firstmulti-directional still picture. The system may further be configured toreceive a user's link addition request and add a new link with anothermulti-directional still picture to the first or the secondmulti-directional still picture. The system may further be configured toreceive a user's link modification request and modify a link of thefirst or the second multi-directional still picture.

In some aspects, the disclosure relates to a system for generatingmulti-directional still pictures. The system may include an interface ofa system for generating multi-directional still pictures operating on acomputing device, the interface configured to: receive one or more stillpictures each still picture depicting a differently directed view from afirst location of plurality locations of a represented object, andgenerate a first multi-directional still picture to include the one ormore still pictures from the first location. The interface may furtherbe configured to: receive one or more still pictures each depicting adifferently directed view from a second location of the representedobject, generate a second multi-directional still picture to include theone or more still pictures from the second location and to include alink with the first multi-directional still picture, the first locationbeing adjacent to the second location, and add a link with the secondmulti-directional still picture to the first multi-directional stillpicture. The interface may further be configured to receive a user'slink addition request and add a new link with another multi-directionalstill picture to the first or the second multi-directional stillpicture. The interface may further be configured to receive a user'slink modification request and modify a link of the first or the secondmulti-directional still picture.

In some aspects, the disclosure relates to a system for detecting stillpictures. The system may include a processor and an interface, coupledto the processor, for receiving a collection of still pictures. Thesystem may further include a comparator, coupled to the processor, forcomparing subsets of a first still picture and subsets of a second stillpicture, the compared subsets being near opposite edges of the first andthe second still pictures, and determining that a subset of the firststill picture is sufficiently similar to a subset of the second stillpicture to indicate an overlapping field of view between the two stillpictures. The system may further include an assembler, coupled to theprocessor, for generating a first multi-directional still picture toinclude the first and the second still pictures, the first and thesecond still pictures depicting a first and a second differentlydirected views from a first location of a represented object. Thecomparator may further be configured to: compare subsets of the firststill picture and subsets of a third still picture, the compared subsetsbeing near opposite edges of the first and the third still pictures, anddetermine that a subset of the first still picture is sufficientlysimilar to a subset of the third still picture to indicate anoverlapping field of view between the two still pictures, wherein theassembler may further be configured to add the third still picture tothe first multi-directional still picture, the third still picturedepicting a third differently directed view from the first location ofthe represented object.

In some aspects, the disclosure relates to a system for detecting stillpictures. The system may include an interface of a system for detectingstill pictures operating on a computing device, the interface configuredto receive a collection of still pictures. The interface may further beconfigured to: compare subsets of a first still picture and subsets of asecond still picture, the compared subsets being near opposite edges ofthe first and the second still pictures, determine that a subset of thefirst still picture is sufficiently similar to a subset of the secondstill picture to indicate an overlapping field of view between the twostill pictures, and generate a first multi-directional still picture toinclude the first and the second still pictures, the first and thesecond still pictures depicting a first and a second differentlydirected views from a first location of a represented object. Theinterface may further be configured to: compare subsets of the firststill picture and subsets of a third still picture, the compared subsetsbeing near opposite edges of the first and the third still pictures,determine that a subset of the first still picture is sufficientlysimilar to a subset of the third still picture to indicate anoverlapping field of view between the two still pictures, and add thethird still picture to the first multi-directional still picture, thethird still picture depicting a third differently directed view from thefirst location of the represented object.

In some aspects, the disclosure relates to a system for detecting linksamong multi-directional still pictures. The system may include aprocessor and an interface, coupled to the processor, for receiving acollection of multi-directional still pictures each multi-directionalstill picture associated with a location of a represented object andincluding one or more differently directed still pictures. The systemmay further include a comparator, coupled to the processor, forincrementally resizing a first still picture of the firstmulti-directional still picture, comparing subsets of a first stillpicture of a second multi-directional still picture with theincrementally resized first still picture of the first multi-directionalstill picture, and determining that a subset of the first still pictureof the second multi-directional still picture is sufficiently similar toan incrementally resized first still picture of the firstmulti-directional still picture to indicate a line of sight. The systemmay further include an assembler, coupled to the processor, for adding alink with the second multi-directional still picture to the firstmulti-directional still picture and adding a link with the firstmulti-directional still picture to the second multi-directional stillpicture.

In some aspects, the disclosure relates to a system for detecting linksamong multi-directional still pictures. The system may include aninterface of a system for detecting links among multi-directional stillpictures operating on a computing device, the interface configured toreceive a collection of multi-directional still pictures eachmulti-directional still picture associated with a location of arepresented object and including one or more differently directed stillpictures. The interface may further be configured to incrementallyresize a first still picture of the first multi-directional stillpicture. The interface may further be configured to: compare subsets ofa first still picture of a second multi-directional still picture withthe incrementally resized first still picture of the firstmulti-directional still picture, determine that a subset of the firststill picture of the second multi-directional still picture issufficiently similar to an incrementally resized first still picture ofthe first multi-directional still picture to indicate a line of sight,and add a link with the second multi-directional still picture to thefirst multi-directional still picture and add a link with the firstmulti-directional still picture to the second multi-directional stillpicture.

Other features and advantages of the disclosure will become apparentfrom the following description, including the claims and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of an environment or architecture onwhich the features of the disclosure may be implemented.

FIG. 2 is a diagram showing an embodiment of MDP Unit 100 implemented ona Computing Device 70.

FIG. 3 shows an embodiment of MDP Unit 100 implemented to represent apark.

FIG. 4 shows an embodiment of MDP Unit 100 implemented to representinterior of a building.

FIG. 5 is a diagram showing an embodiment of a Multi-directional StillPicture 200.

FIG. 6 shows an embodiment of MDP Unit 100 implemented in a web browser.

FIG. 7 illustrates a flow chart diagram of an embodiment of a method2100 implemented by MDP Unit 100.

FIG. 8 is a diagram showing an embodiment of a Multi-directional StillPicture 200 including Multi-directional Still Picture Angles 230.

FIG. 9 shows an embodiment of MDP Unit 100 implemented to approximateMulti-directional Still Picture Link 220 based on an angle of view of aCombined Picture 227.

FIG. 10 is a diagram showing an embodiment of a Multi-directional StillPicture 200 including Multi-directional Still Picture Distances 240.

FIG. 11 is a diagram showing an embodiment of MDP Unit 100 withMulti-directional Pictures Repository 115 residing on a Remote ComputingDevice 1310.

FIG. 12 is a diagram showing an embodiment of MDP Unit 100 with CoreProgram 110 and Multi-directional Pictures Repository 115 executing on aRemote Computing Device 1310.

FIG. 13 is a diagram showing an embodiment of MDP Unit 100 implementedto include Multi-directional Pictures Repository 115 in Core Program110.

FIG. 14 is a diagram showing an embodiment of MDP Unit 100 implementedto include Core Program 110 in Multi-directional Pictures Repository115.

FIG. 15 is a diagram showing an embodiment of MDP Unit 100 with SpeechRecognizer 2700.

FIG. 16 shows an embodiment of a multi-user MDP Unit 100 implemented ina web browser.

FIG. 17 shows an embodiment of multi-user MDP Unit 100 implemented toshow Avatar 845 in a Still Picture 210 a, 210 b, 210 c, 210 d, etc.

FIG. 18 illustrates a flow chart diagram of an embodiment of a method3100 implemented by MDP Unit 100.

FIG. 19 is a diagram showing an embodiment of MDP Unit 100 with Maker920.

FIG. 20 shows an embodiment of MDP Unit 100 with Designer 915 creatingMulti-directional Still Pictures 200 in curved paths.

FIG. 21 shows an embodiment of MDP Unit 100 with Designer 915 creatingMulti-directional Still Pictures 200 in straight paths.

FIG. 22 shows an embodiment of Maker 920 with Designer 915 assigning aStill Picture 210 of a Multi-directional Still Picture 200.

FIG. 23 shows an embodiment of Maker 920 with Designer 915 assigning aMulti-directional Still Picture Link 220 of a Multi-directional StillPicture 200.

FIG. 24 shows an embodiment of Maker 920 including automatic detectionof Still Pictures 210 a, 210 b, 210 c, 210 d, etc.

FIG. 25 illustrates a flow chart diagram of an embodiment of a method3200 implemented by MDP Unit 100.

FIG. 26 shows an embodiment of Maker 920 including automatic detectionof links among Multi-directional Still Pictures 200.

FIG. 27 illustrates a flow chart diagram of an embodiment of a method3300 implemented by MDP Unit 100.

FIG. 28 illustrates a flow chart diagram of an embodiment of a method2200 implemented by MDP Unit 100.

FIG. 29 is a diagram showing an embodiment of a Multi-directional MotionPicture 400.

FIG. 30 shows an embodiment of MDP Unit 100 implemented to representinterior of a building with an action scene.

FIG. 31 illustrates a flow chart diagram of an embodiment of a method2300 implemented by MDP Unit 100.

FIG. 32 shows an embodiment of MDP Unit 100 in which Multi-directionalMotion Picture 400 may include coordinates.

FIG. 33 shows an embodiment of MDP Unit 100 implemented to includeautomatic pattern of movement among Multi-directional Motion Pictures400.

FIG. 34 shows an embodiment of MDP Unit 100 implemented to includedetection of an action scene using lines of Multi-directional MotionPictures 400 aligned with reference points (i.e. x and y axes, etc.) ofa represented object.

FIG. 35 shows an embodiment of Motion Picture Taking Devices 480 forcreating collections of multi-directional motion pictures representingan object.

FIG. 36 illustrates a flow chart diagram of an embodiment of a method2400 implemented by MDP Unit 100.

Like reference numerals in different figures indicate like elements.Horizontal or vertical “ . . . ”and other such indicia may be used toindicate additional instances of the same type of element, n, m, n+m,n−m or other such indicia may represent any integers or sequentialnumbers that follow the sequence where they are indicated. Any of theseindicia may be used interchangeably according to the context and spaceavailable.

DETAILED DESCRIPTION

The disclosed methods, systems and apparatuses for making, processingand using multi-directional still pictures and/or multi-directionalmotion pictures may include features, functionalities, embodiments, andapplications of still and/or motion pictures for advanced interactivevisual representation of objects. The disclosed methods, systems andapparatuses, any of their elements, any of their embodiments, or acombination thereof may generally be referred to as MDP Unit 100, as MDPapplication, or as other similar name or reference.

Referring now to FIG. 1, an embodiment of a Computing Device 70 (in someaspects referred to as Mobile Device 70) in which the features of theforthcoming disclosure may be implemented is illustrated. In someaspects, the disclosed methods, systems and apparatuses may includefunctions, algorithms, hardware or software, or a combination thereofthat may be implemented or executed on any type and form of computingdevice, such as a computer, a mobile device, a server, a video gamingdevice, a television device, a GPS receiver, a media player, an embeddeddevice, or any other type and form of a computing device capable ofperforming the operations described herein.

Computing Device 70 may include hardware, software or a combination ofhardware and software providing the structure on which the embodimentsof the disclosure may be practiced. Computing device 70 may include acentral processing unit, which may also be referred to as a mainprocessor 11, that may include one or more memory ports 10 and one ormore input output ports, also referred to I/O ports 15, such as the I/Oports 15A and 15B. Computing device 70 may further include a main memoryunit 12, which may be connected to the remainder of the components ofthe Computing Device 70 via a bus 5 and/or may be directly connected tothe main processor 11 via memory port 10. The Computing Device 70 mayalso include a visual display device 21 such as a monitor, projector orglasses, a keyboard 23 and/or a pointing device 24, such as a mouse,interfaced with the remainder of the device via an I/O control 22. EachComputing Device 70 may also include additional optional elements, suchas one or more input/output devices 13. Main processor 11 may compriseor be interfaced with a cache memory 14. Storage 27 may comprise memory,which provides an operating system, also referred to as OS 17,additional software 18 operating on the OS 17 and data space 19 in whichadditional data or information may be stored. Alternative memory device16 may be connected to the remaining components of the computingenvironment via bus 5. A network interface 25 may also be interfacedwith the bus 5 and be used to communicate with external computingdevices via an external network. Any or all of the described elements ofthe Computing Device 70 may be directly or operatively connected witheach other or with other additional elements as depicted on FIG. 1 orusing any other connection means known in art in alternate embodiments.

Main processor 11 includes any logic circuitry that responds to andprocesses instructions fetched from the main memory unit 12. Mainprocessor 11 may also include any combination of hardware and softwarefor implementing and executing logic functions or algorithms. Mainprocessor 11 may include a single core or a multi core processor. Mainprocessor 11 may comprise any functionality for loading an operatingsystem 17 and operating any software 18 thereon. In many embodiments,the central processing unit is provided by a microprocessing or aprocessing unit, such as for example Snapdragon processors produced byQualcomm Inc., processors by Intel Corporation of Mountain View, Calif.,those manufactured by Motorola Corporation of Schaumburg, Ill.; thosemanufactured by Transmeta Corporation of Santa Clara, Calif.; theRS/6000 processor, those manufactured by International Business Machinesof White Plains, N.Y.; those manufactured by Advanced Micro Devices ofSunnyvale, Calif., or any computing unit for performing similarfunctions. The Computing Device 70 may be based on any of theseprocessors, or any other processor capable of operating as describedherein, whether on a mobile or embedded device or a larger moreconventional machine.

Main memory unit 12 may include one or more memory chips capable ofstoring data and allowing any storage location to be directly accessedby the microprocessor 11, such as Static random access memory (SRAM),Flash memory, Burst SRAM or SynchBurst SRAM (BSRAM), Dynamic randomaccess memory (DRAM), Fast Page Mode DRAM (FPM DRAM), Enhanced DRAM(EDRAM), Extended Data Output RAM (EDO RAM), Extended Data Output DRAM(EDO DRAM), Burst Extended Data Output DRAM (BEDO DRAM), Enhanced DRAM(EDRAM), synchronous DRAM (SDRAM), JEDEC SRAM, PC100 SDRAM, Double DataRate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM),Direct Rambus DRAM (DRDRAM), or Ferroelectric RAM (FRAM). The mainmemory 12 may be based on any of the above described memory chips, orany other available memory chips capable of operating as describedherein. In some embodiments, the main processor 11 communicates withmain memory 12 via a system bus 5. In some embodiments of a ComputingDevice 70, the processor may communicate directly with main memory 12via a memory port 10.

Main processor 11 may communicate directly with cache memory 14 via aconnection means, such as a secondary bus which may also sometimes bereferred to as a backside bus. In other embodiments, main processor 11may communicate with cache memory 14 using the system bus 5. Main memory12, I/O device 13 or any other component of the Computing Device 70 maybe connected with any other components of the computing environment viasimilar secondary bus, depending on the design. Cache memory 14 howevermay typically have a faster response time than main memory 12 and mayinclude a type of memory which may be considered faster than main memory12, such as for example SRAM, BSRAM, or EDRAM. Cache memory may includeany structure such as multilevel caches. In some embodiments, the mainprocessor 11 may communicate with one or more I/O devices 13 via a localsystem bus 5. Various busses may be used to connect the main processor11 to any of the I/O devices 13, such as a VESA VL bus, an ISA bus, anEISA bus, a MicroChannel Architecture (MCA) bus, a PCI bus, a PCI-X bus,a PCI-Express bus, or a NuBus. For embodiments in which the I/O deviceis a video display 21, the main processor 11 may use an AdvancedGraphics Port (AGP) to communicate with the display 21. In someembodiments, main processor 11 may communicate directly with I/O device13 via HyperTransport, Rapid I/O, or InfiniBand. In further embodiments,local busses and direct communication are mixed. For example, the mainprocessor 11 may communicate with I/O device 13 using a localinterconnect bus while communicating with I/O device 13 directly.Similar configurations may be used for any other components describedherein.

Computing device 70 may further include alternative memory, such as anSD memory slot, a USB memory stick, an optical drive such as a CD-ROMdrive, a CD-R/RW drive, a DVD-ROM drive or a BlueRay disc, a hard-driveor any other device that may include non-volatile memory suitable forstoring data or installing software and programs. Computing device 70may further include a storage device 27 which may include any type andform of non-volatile memory for storing an operating system (OS) whichmay include any type and form of Windows OS, Mac OS, Unix OS, Linux OS,Android OS, iPhone OS, mobile version of Windows OS, an embedded OS, orany other OS that may operate on the Computing Device 70, Computingdevice 70 may also include software 18 and/or data space 19 for storingadditional data or information. In some embodiments, an alternativememory 16 may be used as the storage device 27. Additionally, OS 17and/or the software 18 may be run from a bootable medium, for example, aflash drive, a bootable CD, such as KNOPPIX®, a bootable CD forGNU/Linux that is available as a GNU/Linux distribution fromknoppix.net.

Computing device 70 may include a network interface 25 to interface to aLocal Area Network (LAN), Wide Area Network (WAN) or the Internetthrough a variety of connections including, but not limited to, standardtelephone lines, wired or wireless connections. LAN or WAN links (i.e.802.11, T1, T3, 56 kb, X.25), broadband connections (e.g., ISDN, FrameRelay, ATM), or some combination of any or all of the above. Networkinterface 25 may include Bluetooth or WiFi capability. The networkinterface 25 may comprise a built-in network adapter, network interfacecard, PCMCIA network card, card bus network adapter, wireless networkadapter, Bluetooth adapter, USB network adapter, modem or any otherdevice suitable for interfacing the Computing Device 70 with any type ofnetwork capable of communication and performing the operations describedherein.

Still referring to FIG. 1, I/O devices 13 may be present in variousshapes and forms in the Computing Device 70. Input devices may includejoysticks, keyboards, mice, trackpads, touchscreens, trackballs,microphones, drawing tablets, gloves, video game components forinputting video game data or a video camera. Output devices may includevideo displays, touchscreens, speakers, or transceivers for sending andreceiving data. I/O devices 13 may be controlled by an I/O control 22.The I/O control 22 may control one or more I/O devices such as akeyboard 23 and a pointing device 24, e.g., a joystick, a mouse or anoptical pen. I/O control 22 may also comprise an interface between anexternal detector, such as a video camera or a microphone and thecomputing device. I/O control 22 may enable any type and form of adetecting device, such as a video camera to be interfaced with othercomponents of the Computing Device 70. Furthermore, an I/O device 13 mayalso provide storage 27 and/or an alternative memory 16 for thecomputing device. In still other embodiments, the Computing Device 70may provide USB connections to receive handheld USB storage devices suchas the USB Flash Drive line of devices manufactured by TwintechIndustry, Inc. of Los Alamitos, Calif.

In some embodiments, the computing environment may comprise or beconnected to multiple display devices 21. Display devices 21 may each beof the same or different type and/or form. I/O devices 13 and/or the I/Ocontrol 22 may comprise any type and/or form of suitable hardware,software, or combination of hardware and software to support, enable orprovide for the connection and use of multiple display devices 21 ormultiple detection devices.

In one example, Computing Device 70 may include any type and/or form ofvideo adapter, video card, driver, and/or library to interface,communicate, connect or otherwise use the display devices 21 or any I/Odevices 13 such as video camera devices. In one embodiment, a videoadapter may comprise multiple connectors to interface to multipledisplay devices 21. In other embodiments, the Computing Device 70 mayinclude multiple video adapters, with each video adapter connected toone or more of the display devices 21. In some embodiments, any portionof the operating system of the Computing Device 70 may be configured forusing multiple displays 21. In other embodiments, one or more of thedisplay devices 21 may be provided by one or more other computingdevices, such as computing devices connected to a remote computingdevice via a network.

In further embodiments, an I/O device 13 may be a bridge between thesystem bus 5 and an external communication bus, such as a USB bus, anApple Desktop Bus, an RS-232 serial connection, a SCSI bus, a FireWirebus, a FireWire 800 bus, an Ethernet bus, an AppleTalk bus, a GigabitEthernet bus, an Asynchronous Transfer Mode bus, a HIPPI bus, a SuperHIPPI bus, a SerialPlus bus, a SCI/LAMP bus, a FibreChannel bus, or aSerial Attached small computer system interface bus.

Computing environment on the Computing Device 70 may operate under thecontrol of operating systems, which may control scheduling of tasks andaccess to system resources. The Computing Device 70 may be running anyoperating system including mobile device or desktop machine operatingsystems, including Android OS, iPhone OS, Windows 8 OS, or any otherversion of OS for running a computing device. For example, with respectto operating systems, the Computing Device 70 may use different releasesof the Unix and Linux operating systems, any version of the Mac OS® forMacintosh computers, any embedded operating system, any real-timeoperating system, any open source operating system, any video gamingoperating system, any proprietary operating system, any operatingsystems for mobile computing devices, or any other operating systemcapable of running on the Computing Device 70 and performing theoperations described herein. Typical operating systems include: WINDOWSXP, Windows 7, Windows 8 all of which are manufactured by MicrosoftCorporation of Redmond, Wash.; MacOS, iPhone OS manufactured by AppleComputer of Cupertino, Calif.; OS/2, manufactured by internationalBusiness Machines of Armonk, N.Y.; and Linux a freely-availableoperating system distributed by Caldera Corp. of Salt Lake City, Utah,or any type and/or form of a Unix operating system, among others.Similarly, any other operating systems by Android or Apple, can beutilized, just as those of the Microsoft. However, it is to beunderstood that, in addition to the traditional mobile and desktopsystem operating system architectures, the computing environment mayoperate under the control of a cloud-based operating system. In someembodiments, other aspects of Computing Device 70 may also beimplemented in the cloud without departing from the spirit and scope ofthe disclosure. For example, in some designs, memory, storage, and/orprocessing elements may be hosted in the cloud.

In some designs, Computing Device 70 may comprise a mobile device suchas a smartphone, wearable electronics, tablet, or laptop. For example,in some designs, computing device can comprise a desktop or a server. Insome embodiments, Computing Device 70 may be implemented on multipledevices. For example, a portion of Computing Device 70 may beimplemented on a mobile device and another portion may be implemented onwearable electronics.

In some embodiments, the Computing Device 70 may have any differentcombination of processors, operating systems, and input/output devicesconsistent with the device's purpose and structure. For example, theComputing Device 70 may include a Snapdragon by Qualcomm, Inc., or Tegraprocessors by nVidia, or any other mobile device processor or amicroprocessor for a similar application. In this embodiment, thesmartphone device may be operated under the control of the Android,Phone OS, PalmOS or any other operating system of a similar purpose. Thedevice may then also include a stylus input device as well as a five-waynavigator device. In another example, the Computing Device 70 mayinclude a Wii video game console released by Nintendo Co. operating anes operating system. In this embodiment, the I/O devices may include avideo camera or an infrared camera for recording or tracking movementsof a player or a participant of a Wii video game. Other I/O devices 13may include a joystick, a keyboard or an RF wireless remote controldevice. Similarly, the Computing Device 70 may be tailored to anyworkstation, mobile or desktop computer, laptop or notebook computer,Smartphone device or tablet, server, handheld computer, gaming device,embedded device, or any other computer or computing product, or othertype and form of computing or telecommunications device and that hassufficient processor power and memory capacity to perform the operationsdescribed herein.

Still referring to FIG. 1, from a perspective of a general architectureand variations of the underlying operating environment in which thefeatures of the disclosed methods, systems and apparatuses may beimplemented, the disclosed methods, systems and apparatuses are notlimited to the use with the configurations shown in the figures ordescribed in the specification, and they may find applicability in anyoperating, computing, communication, electronic, and/or processingenvironment. The environment may include various different modelinfrastructures such as web services, distributed computing, gridcomputing, cloud computing, and other infrastructures.

Various implementations of the disclosed methods, systems andapparatuses may be realized in digital electronic circuitry, integratedcircuitry, specially designed application specific integrated circuits(ASICs), field programmable gate arrays (FPGAs), computer hardware,firmware, software, virtual machines, and/or combinations thereofincluding their structural, logical, and/or physical equivalents. Thevarious implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

A computer program (also known as program, software, softwareapplication, script or code) may include machine instructions for aprogrammable processor, and can be implemented in a high-levelprocedural and/or object-oriented programming language, and/or in alow-level assembly/machine language. Any language used may be a compiledor an interpreted language. A computer program may be deployed in anyform, including as a stand-alone program or as a module, component,subroutine, or other unit suitable for use in a computing environment. Acomputer program does not necessarily correspond to a file in a filesystem. A program may be stored in a portion of a file that holds otherprograms or data (i.e. one or more scripts stored in a markup languagedocument, etc.), in a single file dedicated to the program in question,or in multiple coordinated files (i.e. files that store one or moremodules, sub programs, or portions of code, etc.). A computer programmay be deployed to be executed on one computer or on multiple computers(i.e. cloud, distributed or parallel computing, etc.) at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

The disclosed methods, systems and apparatuses may include clients andservers. A client and server are generally remote from each other andtypically interact through a communication network. The relationship ofclient and server arises by virtue of computer programs running on therespective computers and having a client-server relationship to eachother,

A Computing Device 70 may be embedded in another device such as a tabletcomputer, a mobile telephone, a personal digital assistant (PDA), amedia player, an audio or video player, a Global Positioning System(GPS) receiver, a game console, a portable storage device (i.e. a USBflash drive, etc.), gateway, a router, a hub, a digital video recorder,a set-top box, an automobile entertainment system, an automobilenavigation system, a television device, a residential gateway, arefrigerator, a washing machine, a factory automation device, anassembly line device, a factory floor monitoring device, to name just afew. The processor and the memory may be supplemented by, orincorporated in, special purpose logic circuitry.

As used herein, the terms machine-readable medium and computer-readablemedium may refer to any computer program product, apparatus and/ordevice used to provide machine instructions and/or data to aprogrammable processor, including a machine-readable medium thatreceives machine instructions as a machine-readable signal. The termmachine-readable signal may refer to any signal used to provide machineinstructions and/or data to a programmable processor. A machine-readablemedium may include both a volatile and non-volatile medium, a removableand non-removable medium, a communication medium, and a storage medium.A communication medium may include computer readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism, and may include anyother form of information delivery medium known in art.

The disclosed methods, systems and apparatuses may be implemented in acomputing system that may include a back end component (i.e. a dataserver, etc.), or that may include a middleware component (i.e. anapplication server, etc.), or that may include a front end component(i.e. a client computer having a graphical user interface or a webbrowser through which a user may interact with an implementation of thedisclosed methods, systems and apparatuses, etc.), or any combination ofsuch back end, middleware, or front end components. The components ofthe system may be interconnected by any form or medium of digital datacommunication (i.e. a communication network, etc.). Examples ofcommunication networks may include the Internet, an intranet, anextranet, a local area network (LAN), a wide area network (WAN), apersonal area network (PAN), a home area network (HAN), a campus areanetwork (CAN), a metropolitan area network (MAN), a global area network(GAN), a storage area network (SAN), virtual network, a virtual privatenetwork (VPN), Bluetooth network, a wireless network, a wireless LAN, aradio network, a HomePNA, a power line communication network, a G.hnnetwork, an optical fiber network, an Ethernet network, an activenetworking network, a client-server network, a peer-to-peer network, abus network, a star network, a ring network, a mesh network, a star-busnetwork, a tree network, a hierarchical topology network, or any type ofnetwork known in art.

Any of the files shown in the figures or described in the specificationmay reside in any repository accessible by an embodiment of thedisclosed methods, systems and apparatuses. In each instance where aspecific file or file type is mentioned, other files, file types orformats may be substituted.

Where a reference to a data structure is used herein, it should beunderstood that any variety of data structures may be used such as, forexample, array, list, linked list, doubly linked list, queue, tree,heap, graph, map, grid, matrix, multi-dimensional matrix, table,database, DBMS, file, and/or any other type or form of a data structure.A data structure may include one or more fields or data fields stored inor associated with the data structure. Afield or data field may includea data, a text, an object, a data structure, or any other similarelement. Afield or data field may include a pointer to a data, a text,an object, a data structure, or any other similar element. A datastructure may be stored in a file or any other repository.

Where a reference to an object is used herein, it should be understoodthat an object may include any element described herein. For example, anobject may include a data structure, a DBMS, a database, a file, asystem, a process, and/or any other similar element. An object may bestored in a file or object file, or any other repository.

Where a reference to a data, object, data structure, item or any otherelement is used herein, it should be understood that the data, object,data structure, item or any other element may include a pointer to thedata, object, data structure, item or any other element storedelsewhere.

Where a reference to picture processing or image processing is usedherein, it should be understood that picture processing or imageprocessing may generally include changing pixels of a digital picture,resizing a digital picture, reshaping a digital picture, detectingpatterns or shapes in a digital picture, comparing digital pictures orportions thereof, manipulating a digital picture or its pixels,transforming a digital picture or its pixels, and/or performing anyother operation on a digital picture or a stream of digital pictures byutilizing functions and/or algorithms implemented with a processor (i.e.processor of Computing Device 70, etc.).

Where a reference to an interface or any other element coupled to aprocessor is used herein, it should be understood the interface or anyother element may be operating on the processor. Also, one of ordinaryskill in art will understand that an element coupled to another elementmay include an element in communication with (i.e. wired or wirelessnetwork communication, etc.), connected with, or in any otherinteractive relationship with another element. Furthermore, an elementcoupled to another element may be coupled to any other element inalternate implementations.

Referring to FIG. 2, an embodiment of a Computing Device 70 comprisingMDP Unit 100 is illustrated. Computing Device 70 may include CoreProgram 110, Multi-directional Pictures Repository 115, Input Interface140, Keyboard 150, Output Interface 160, Display 170, Memory 180, andPhysical Storage Medium 181. Other additional elements may be includedas needed, or some of the disclosed ones may be excluded, or acombination thereof may be utilized in alternate embodiments.

User 50 may utilize the functionalities of MDP Unit 100 implemented on aComputing Device 70. For instance, Computing Device 70 may include CoreProgram 110 that may receive user's operating instructions and issuecorresponding instructions to access pictures in Multi-directionalPictures Repository 115. Instructions may include any computer command,instruction set, operation, Structured Query Language (SQL) statement,instruction, or any other command (these terms may be usedinterchangeably herein) understood by Multi-directional PicturesRepository 115. Computing Device 70 may include Multi-directionalPictures Repository 115 that may store pictures (i.e. still or motionpictures, etc.) or references thereto, any data structures (i.e.multi-directional still or motion pictures, mazes, sequences, etc.)and/or other elements. User 50 may interact with Core Program 110through inputting operating instructions via Keyboard 150 and/or InputInterface 140, or another input device and/or its associated interface.User 50 may also interact with the Core Program 110 through viewingresults via Display 170 and/or Output Interface 160, or another outputdevice and/or its associated interface. Computing Device 70 may includeMemory 180 as temporary storage and/or Physical Storage Medium 181 aspermanent storage.

In some embodiments, Computing Device 70 may include any mobilecomputer, a mobile phone, a Smartphone (i.e. iPhone, Windows phone,Blackberry, Android phone, etc.), a tablet, a personal digital assistant(PDA), or another similar type of mobile device capable of implementingthe functionalities described herein. The main processor 11 of theComputing Device 70 may include hardware and/or software for executinginstructions and processing data. Main processor 11 may be directly oroperatively coupled with aforementioned memory for storing theinstructions and data. The memory may further include an implementationof features and functionalities discussed herein. The main processor 11of the Computing Device 70 may access a computer-readable mediumincluding a volatile and nonvolatile medium, a removable andnon-removable medium, a communication medium, a storage medium, and/orother similar type of computer-readable medium. The processor may bedirectly or operatively coupled with an output device such as a LiquidCrystal Display (LCD) to show information to user. An input device, suchas a key pad, keyboard, and/or touch screen may also be directly oroperatively coupled with the processor to enable user to inputinstructions. Memory may store software that can provide functionalitywhen executed by the processor. Software may include a user interfacethat may enable a user to interact with the mobile device, and a mobileoperating system that may provide system functionality. A modern mobileoperating system combines the features of a personal computer operatingsystem with high resolution display, touchscreen, cellular networkconnectivity, bluetooth, WiFi, GPS, mobile navigation, microphone,camera, video camera, voice recorder, speech recognition, music player,video player, near field communication, PDA, and other features andapplications. Examples of a mobile operating system include DS, Android,Windows Mobile, BlackBerry OS, Symbian OS, Palm OS, and other mobileoperating systems.

In other embodiments, Computing Device 70 may be, or include, anembedded device, which may be any device or system with a dedicatedfunction within a larger device or system. Embedded systems may rangefrom the simplest ones dedicated to one task with no user interfaces tocomplex ones with advanced user interfaces that resemble modern desktopcomputer systems. Simple embedded devices may use buttons, lightemitting diodes (LEDs), graphic or character LCDs with a simple menusystem. More sophisticated devices may use a graphical screen with touchsensing or screen-edge buttons where the meaning of the buttons maychange with the screen. Examples of devices that include an embeddeddevice may include a gaming device, a media player, a digital still orvideo camera, a pager, a television device, a set-top box, a personalnavigation device, a global positioning system (GPS) receiver, a digitalwatch, a DVD player, a printer, a microwave oven, a washing machine, adishwasher, a thermostat, a automobile, a factory controller, atelephone, a router, a network bridge, or another similar type ofdevice. The embedded device may include one or more elements describedin the Computing Device 70 above such as the main processor 11, any ofthe aforementioned memory, the network interface 25, computer-readablemedium, the output device, the input device, the user interface, thesoftware, the operating system, etc. Examples of an operating system forembedded device include MicroC/OS-II, QNX, VxWorks, eCos, TinyOS,Windows Embedded, Embedded Linux, and other embedded device operatingsystems.

In yet other embodiments, Computing Device 70 may be, or include, anyother computing device besides the aforementioned mobile and embeddeddevices. Other computing device may be any computing device including atraditional computer with all of its processing, storage, communication,networking, input and output interfacing, and other functionalities.Examples of traditional computing device may include a personal desktopcomputer, a server, a mainframe computer, gaming device, or anothersimilar type of traditional computing device. Traditional computingdevice may include one or more elements described in the ComputingDevice 70 above such as the main processor 11, any of the aforementionedmemory, the network interface 25, computer-readable medium, the outputdevice, the input device, the user interface, the software, theoperating system, etc. Examples of an operating system for a traditionalcomputing device include Windows, MacOS, Linux, Unix, and other similaroperating systems.

MDP Unit 100 may comprise any software, hardware or a combination ofsoftware and hardware for implementing multi-directional still picturesand/or multi-directional motion pictures, and/or for otherfunctionalities described herein. MDP Unit 100 may include functions andalgorithms for making, processing and/or using multi-directional stillpictures and/or multi-directional motion pictures. Similarly, MDP Unit100 may include functions and algorithms for implementing an interfacefor making, processing and/or using multi-directional still picturesand/or multi-directional motion pictures. In some aspects, MDP Unit 100may include a software application or a function acting as an interfacebetween a user and multi-directional still pictures and/ormulti-directional motion pictures. For example, MDP Unit 100 may includea software application implemented by processor that may receive user'soperating instructions, the processor may determine that the user mayintend to access a particular picture within a particularmulti-directional still picture or multi-directional motion picture, andthe processor may transmit the desired picture to be presented to theuser.

In some embodiments, MDP Unit 100 may be implemented as a Java MicroEdition (ME), Java Standard Edition (SE), or other Java Editionsapplication or program (also referred to as Java or Java platforms).Java ME is specifically designed for mobile and embedded devices and itprovides a robust and flexible environment for software applicationswith flexible user interfaces, robust security, built-in networkprotocols, powerful application programming interfaces. DBMSconnectivity and interfacing functionalities, file manipulationcapabilities, and support for networked and offline applications.Software applications based on Java ME are portable across many devices,yet leverage each device's native capabilities. The feature-reach JavaSE is mainly designed for traditional computing devices, but more mobileand embedded devices continue to support it. Java SE supports thefeature sets of most Smartphones and a broad range of high-end connecteddevices while still fitting within their resource constraints. Javaplatforms may include one or more basic application programminginterfaces (APIs) and virtual machine features that comprise a runtimeenvironment for software applications such as some embodiments of MDPUnit 100 that may be executed on mobile, embedded, and other computingdevices. Java applications may provide a wide range of user-levelfunctionalities that may be implemented in software applications such assome embodiments of MDP Unit 100, including, but not limited to,providing an Internet browser to a user, displaying text and graphics,playing and recording audio media, displaying and recording visualmedia, communicating with another mobile device, and otherfunctionalities. In one example, MDP Unit 100 may be implemented as aXlet within a Java platform. A Xlet may be a Java applet or applicationconfigured to execute on a mobile, embedded, and/or other computingdevice, that may be a part of the Java TV specification, and may use aPersonal Basis Profile (“PBP”) of a Connected Device Configuration(“CDC”) for the Java ME platform. A Xlet may be managed by aspecial-purpose application-management software built into the mobile,embedded, and/or other computing device. Although, some implementationsof MDP Unit 100 may include a Java program written for a Java platform,MDP Unit 100 is generally programming language, platform, and operatingsystem independent. Programming languages that may be used additional toJava may include C, C++, Cobol, Java Script, Tcl, Visual Basic, Pascal,VB Script, Perl, PHP, Ruby, and/or other programming languages orfunctions capable of implementing the functionalities described herein.

Core Program 110 may comprise any software, hardware, or a combinationof software and hardware. Core Program 110 may comprise functions andalgorithms for directing and/or controlling the flow of instructions anddata among the elements of MDP Unit 100. Core Program 110 may includeany functionality to organize one or more pictures of an object into aninteractive simulation or presentation of the object. Core Program 110may organize a plurality of pictures, each depicting an object from adifferent location, a different angle or a different point of view, toenable the user to view the object from multitude of points of view inan interactive application. As such, Core Program 110 may enable a userto view all views (i.e. forward, backward, right, left, up, down,diagonal, angular, etc.) from all locations of a represented object aswell as to simulate user's motion (i.e. stepping, etc.) through therepresented object. Core Program 110 may be directly or operativelycoupled with Multi-directional Pictures Repository 115, Input Interface140, Output Interface 160, and/or other elements to produce desiredresults. Core Program 110 may be initiated by User 50 or it may beinitiated automatically when Computing Device 70 turns on. Core Program110 may run continuously as a deamon or it may run only as long as User50 needs it.

Multi-directional Pictures Repository 115 may comprise any hardware,software or a combination of hardware and software. Multi-directionalPictures Repository 115 may include functions and algorithms for storingpictures (i.e. still or motion pictures, etc.) or references thereto,any data structures (i.e. multi-directional still or motion pictures,mazes, sequences, etc.) and/or other elements. In some embodiments,Multi-directional Pictures Repository 115 may comprise functions andalgorithms for storing a data structure whose data fields may includepictures (i.e. still or motion pictures, etc.) or references thereto,any data structures (i.e. multi-directional still or motion pictures,mazes, sequences, etc.) and/or other elements. Pictures may includestill or motion pictures (i.e. video, etc.), and/or any other visualcontent.

In some embodiments, Multi-directional Pictures Repository 115 mayinclude a file, a data structure, an object, and/or other similardigital data repository. Core program 110 may read the Multi-directionalPictures Repository 115 by opening or connecting to the file, datastructure, object, and/or other similar digital data repository, andaccessing the stored pictures (i.e. still or motion pictures, etc.) orreferences thereto, any data structures (i.e. multi-directional still ormotion pictures, mazes, sequences, etc.) and/or other elements. In someaspects, Multi-directional Pictures Repository 115 may include pluralityof files, data structures, objects, and/or other similar digital datarepositories. In one example, all pictures (i.e. still or motionpictures, etc.) or references thereto, any data structures (i.e.multi-directional still or motion pictures, mazes, sequences, etc.)and/or other elements may be stored in one file. In another example,some or each of the pictures (i.e. still or motion pictures, etc.) orreferences thereto, any data structures (i.e. multi-directional still ormotion pictures, mazes, sequences, etc.) and/or other elements may bestored in a separate file.

In other embodiments, Multi-directional Pictures Repository 115 mayinclude a database management system (DBMS), a database, a system, aprocess, and/or other similar digital data repository. Core program 110may read the Multi-directional Pictures Repository 115 by opening orconnecting to the DBMS, database, system, process, and/or other similardigital data repository, and accessing the stored pictures (i.e. stillor motion pictures, etc.) or references thereto, any data structures(i.e. multi-directional still or motion pictures, mazes, sequences,etc.) and/or other elements. In one example, Core Program 110 mayconnect to a DBMS, a database, or a similar repository or system throughan ODBC connection. The inter-process interaction may occur on a singlemobile, embedded or other computing device, or between two or moremobile, embedded or other computing devices over a network. Otherelements or types of connections such as a database API, databasedriver, database bridge, specialized database interface, a socket, anoperating system command, a global function, a local function, a directcommand, etc. may be included, or some of the disclosed ones may beexcluded, or a combination thereof may be utilized in alternateimplementations of the connection between the Core Program 110 and theDBMS, database, or a similar repository. Upon connecting to a database,for example, Core Program 110 may transmit to the database a command orinstruction set understood by the database. Subsequently, the databasemay perform an operation corresponding to the command or instructionset, and the database may transmit results (i.e. picture or a referencethereto that the user wanted to view, link, etc.) to the Core Program110 for presentation to User 50. In some embodiments, the command orinstruction set used may include a SQL statement, which may be platformindependent and supported by a vast majority of commercial andopen-source DBMSs. It should be clear to one of ordinary skill in artthat the command or instruction set (i.e. SQL statement, etc.) discussedherein as an example, may be replaced by any type or form of command,instruction set or statement in any other language or script, as neededto conform to a given DBMS or database. In one example, a single tablein a database may be used as Multi-directional Pictures Repository 115.As such, a multi-directional still or motion picture may be storedwithin the table where each of the data fields (i.e. still or motionpictures, links, etc.) of the multi-directional still or motion picturemay be a record with a common identifier that signifies the data field'sassociation with its parent multi-directional still or motion picture.Later in the process, a simple call to the table to read records with aspecific identifier would reconstruct data fields of themulti-directional still or motion picture. In another example of asingle table in a database being used as Multi-directional PicturesRepository 115, a multi-directional still or motion picture may bestored within the table where each of the data fields of themulti-directional still or motion picture may be a field (i.e. column)in a record of the table. Later in the process, a simple call to thetable to read fields of the record would reconstruct data fields of themulti-directional still or motion picture. In some embodiments, separatetables or databases may be utilized for each of the data structures usedsuch as multi-directional still or motion pictures, mazes and/orsequences. In one example, records in a table may be utilized to storedata fields of multi-directional still or motion pictures, tables may beutilized to store sequences of multi-directional still or motionpictures, and/or databases may be utilized to store mazes ofmulti-directional still or motion pictures and/or their sequences. Insome embodiments, Multi-directional Pictures Repository 115 may includean entire DBMS with all of its database and tables dedicated toMulti-directional Pictures Repository 115.

In yet other embodiments, Multi-directional Pictures Repository 115 maybe embedded within the Core Program 110 (i.e. hard coded). As such, Coreprogram 110 may have direct access to the stored pictures (i.e. still ormotion pictures, etc.) or references thereto, any data structures (i.e.multi-directional still or motion pictures, mazes, sequences, etc.)and/or other elements without utilizing an element such as theMulti-directional Pictures Repository 115.

In yet other embodiments, Multi-directional Pictures Repository 115 mayinclude a separate file, a separate data structure, a separate object, aseparate DBMS, a separate database, a separate system, a separateprocess, and/or other separate digital data repository or system foreach of the pictures (i.e. still or motion pictures, etc.) or referencesthereto, any data structures (i.e. multi-directional still or motionpictures, mazes, sequences, etc.) and/or other elements. In one example,Multi-directional Pictures Repository 115 may include a file comprisingdefinitions of data structures used such as multi-directional still ormotion pictures, mazes, sequences, etc., which data structures mayfurther comprise references to picture (i.e. still or motion picture,etc.) files. As such, Core program 110 may read the Multi-directionalPictures Repository 115 by opening or connecting to the file includingthe definitions of multi-directional still or motion pictures, mazes,sequences, etc. and by accessing the picture (i.e. still or motionpicture, etc.) files through references included in themulti-directional still or motion pictures, mazes, sequences, etc.

In yet other embodiments, Multi-directional Pictures Repository 115 mayinclude definitions of pictures (i.e. still or motion pictures, etc.) orreferences thereto, any data structures (i.e. multi-directional still ormotion pictures, mazes, sequences, etc.) and/or other elements. Suchdefinitions may be embedded in other files or programs such as HTML,XML, Perl, PHP, Ruby, Java, Java Script, C++, Visual Basic, or othersimilar files or programs. In one example, Multi-directional PicturesRepository 115 may include a collection of definitions embedded into aHTML file. Such collection of definitions may define any data structuresused (i.e. multi-directional still or motion pictures, mazes, sequences,etc.) that may further comprise references to picture (i.e. still ormotion pictures, etc.) files. As such, Core program 110 may read theMulti-directional Pictures Repository 115 by opening the HTML fileincluding the definitions of the data structures (i.e. multi-directionalstill or motion pictures, mazes, sequences, etc.) and by accessingpicture files through the references included in the data structures(i.e. multi-directional still or motion pictures, mazes, sequences,etc.) In some embodiments, Core Program 110 itself may be embedded intoHTML, XML, Perl, PHP, Ruby, Java, Java Script, Active X, C++, VisualBasic, or other similar files or programs.

Input Interface 140 may comprise any hardware, software or a combinationof hardware and software. Input Interface 140 may include functions andalgorithms for processing input events of the Keyboard 150 and/or otherinput devices for use by Core Program 110 or other elements of thedisclosed methods, systems and apparatuses. Input Interface 140 mayinclude Java keyboard listener, keypad listener, touch screen listener,mouse listener, trackball listener, any device driver (i.e. audio,video, keyboard, mouse, or other driver), speech recognizer, videorecognizer, and/or any other input interface. Input Interface 140 may beor comprise any functionality of I/O control 22, keyboard 23, and/or I/Odevice 13.

Keyboard 150 may comprise any hardware, software or a combination ofhardware and software. Keyboard 150 may include functions and algorithmsfor inputting letters, numbers and/or symbols into the Computing Device70. Keyboard 150 may be suited or specialized for a mobile device,tablet or a Smartphone. Keyboard 150 may be or comprise anyfunctionality of keyboard 23, I/O device 13 and/or I/O control 22. Insome embodiments, Keyboard 150 may be an element of the disclosedmethods, systems and apparatuses through which User 50 may inputoperating instructions by pressing keys or buttons, it should beunderstood by one of ordinary skill in art that other input devices fordetecting user input may be utilized in place of Keyboard 150 such askeypad, touch screen, external keyboard, mouse, trackball, microphone,control wheel, remote control, video or still camera, tactile inputdevice, and/or any other input device known in art. Keyboard 150 or anyof the alternative input devices may include any press-able key of theKeyboard 150, any push-able button of the Computing Device 70 or anexternal input device (i.e. joystick, etc.), any touch-able areas of atouch screen, any click-able component of the Computing Device 70 or anexternal input device (i.e. mouse, etc.), any slide-able component ofthe Computing Device 70 or an external input device, or any othergraphical or physical elements that may enable a user to inputinstructions or data,

Output Interface 160 may comprise any hardware, software or acombination of hardware and software. Output interface 160 may includefunctions and algorithms for processing output from Core Program 110 orother elements of the disclosed methods, systems and apparatuses forpresentation to a user. In some embodiments, Output interface 160 mayinclude functions and algorithms for processing results from CoreProgram 110 for viewing by User 50 on Display 170. Output Interface 160may include a Java graphical user interface, an acoustical outputinterface, tactile output interface, any device driver (i.e. audio,video, or other driver), and/or any other output interface known in art.Output interface 160 may be or comprise any functionality of I/O control22, display devices 21, and/or I/O device 13.

Display 170 may comprise any hardware, software or a combination ofhardware and software. Display 170 may include functions and algorithmsfor displaying or rendering information to a user. In some embodiments,Display 170 may comprise functions and algorithms for showing resultsfrom Core Program 110 to the User 50. It should be understood by one ofordinary skill in art that other output devices for conveyinginformation may be utilized such as a touch screen, projector, anexternal monitor, a speaker, tactile output device, and/or any otheroutput device known in art. Display 170 may be or comprise anyfunctionality of display devices 21, I/O control 22, and/or I/O device13.

Memory 180 may comprise any hardware, software or a combination ofhardware and software. Memory 180 may include functions and algorithmsfor electronically storing data or information. In some embodiments,Memory 180 may comprise functions and algorithms for temporarily storingprograms (i.e. Core Program 110, etc.) and/or data (Multi-directionalPictures Repository 115, pictures or references thereto, any datastructures, etc.) currently running on the Computing Device 70. Memory180 may include a random access memory (RAM), and/or any other memory.Memory 180 may be or comprise any functionality of storage 27, cache 14,and/or main memory 12.

Physical Storage Medium 181 may comprise any hardware, software or acombination of hardware and software. Physical Storage Medium 181 mayinclude functions and algorithms for electronically storing data orinformation. In some embodiments, Physical Storage Medium 181 maycomprise functions and algorithms for permanently storing programs (i.e.Core Program 110, etc.) and/or data (Multi-directional PicturesRepository 115, pictures or references thereto, any data structures,etc.). Physical Storage Medium 181 may include a hard drive, a microSDcard, a flash drive, and/or any other physical storage medium. Physicalstorage medium 181 may be or comprise any functionality of storage 27.

Referring to FIG. 3, a collection of Multi-directional Still Pictures200 representing an object such as a park is illustrated, for example.Such collection of Multi-directional Still Pictures 200 representing anobject may enable a user to visually experience the object such as apark where every step may include a view of what a user would seestepping down the park's walkways at a specific point in time. In someaspects, Multi-directional Still Pictures 200, Maze 300, and/orMulti-directional Picture Sequences 350 may be applied on the park'swalkways where the park may be or include the object represented by MDPUnit 100. Multi-directional Still Pictures 200, Maze 300, and/orMulti-directional Picture Sequences 350 may be arranged and/orinterconnected to correspond to the shape of the park's walkways. Insome embodiments, MDP Unit 100 may be implemented to include (1)Multi-directional Still Pictures 200, and/or (2) a means for a user tomove among Multi-directional Still Pictures 200. In other embodiments,MDP Unit 100 may be implemented to include (1) Multi-directional PictureSequences 350 that may comprise Multi-directional Still Pictures 200 ofeach of the park's continuous walkways, and/or (2) a means for a user toconnect with Multi-directional Picture Sequences 350 and/or move amongMulti-directional Still Pictures 200. In yet other embodiments, MDP Unit100 may be implemented to include (1) a Maze 300 that may compriseMulti-directional Still Pictures 200 and/or Multi-directional PictureSequences 350, and/or (2) a means for a user to connect withMulti-directional Picture Sequences 350 and/or move amongMulti-directional Still Pictures 200. Other additional elements may beincluded as needed, or some of the disclosed ones may be excluded, or acombination thereof may be utilized in alternate embodiments. Ingeneral, the term moving among Multi-directional Still Pictures 200 mayrefer to moving, connecting, linking, shifting, or switching from oneMulti-directional Still Picture 200 to another. As such, moving amongMulti-directional Still Pictures 200 may enable a user to experience arepresented object one picture at a time in an arrangement in which theywould appear in reality had the user actually been at the scene of theobject. It should be understood that park, interior of a building, roomand/or other objects described herein are used as examples of objectsthat may be represented by a MDP application. Any objects may berepresented including linear objects, two dimensional objects,multi-dimensional objects, multi-directional objects, multi-leveledobjects, branched objects, systems of objects, connected objects,collections of objects, and/or any other objects. Represented objectsmay include real world objects such as parks, streets, campuses,buildings, houses, stadiums, cities, museums, rooms, persons, vehicles,furniture, and/or any other conceivable real world objects. Representedobjects may also include computer generated objects such as computergenerated parks, computer generated streets, computer generatedcampuses, computer generated buildings, computer generated houses,computer generated stadiums, computer generated cities, computergenerated museums, computer generated rooms, computer generated persons,computer generated vehicles, computer generated furniture, and/or anyother conceivable computer generated objects. A represented object mayinclude a microscopic object such as bacteria and/or any othermicroscopic object. A represented object may include a gigantic objectsuch as a planet and/or any other gigantic object. A represented objectmay include any number of other objects within it that may also berepresented by MDP application.

Multi-directional Picture Sequence 350 may comprise any software or acombination of hardware and software. Multi-directional Picture Sequence350 may include functions and algorithms for organizing and/or storingMulti-directional Still Pictures 200. In some embodiments in whichMulti-directional Picture Sequences 350 may be used, a Multi-directionalPicture Sequence 350 may include Multi-directional Still Pictures 200created in a sequential order. In other embodiments in whichMulti-directional Picture Sequences 350 may be used, a Multi-directionalPicture Sequence 350 may include Multi-directional Still Pictures 200that may correspond to a branch of Maze 300 as each continuous branch ofMaze 300 can be seen as a sequence. MDP Unit 100 is independent of anydata structures used, and may utilize any sequence-like or othersuitable data structures. These data structures may include, but are notlimited to, arrays, linked lists, doubly linked lists, records in atable of a database, and/or any other suitable data structures that mayenable implementation of features and functionalities described herein.In general, MDP Unit 100 may include Multi-directional Still Pictures200 positioned in locations of a represented object whereMulti-directional Still Pictures 200 may be interlinked in anyconceivable manner. Therefore, each MDP application may possess its ownunique data structures depending on the represented object, and/or onlinks defined among Multi-directional Still Pictures 200. It should notbe understood that the term sequence only indicates representation of astraight lined object or a portion thereof. A Multi-directional PictureSequence 350 may represent an object or a portion thereof with straightphysical lineup (i.e. a straight lined walkway in a park, etc.), anytype of curved lineup (i.e. a curved walkway in a park, a path throughmultiple walkways in a park, etc.), or any other type of lineup (i.e.zig-zag, etc.). In some embodiments, a Multi-directional PictureSequence 350 may include an actual data structure used to organizeand/or store Multi-directional Still Pictures 200. In other embodiments,Multi-directional Picture Sequence 350 may be conceptual used toorganize Multi-directional Still Pictures 200 in user's mind in whichcase an actual Multi-directional Picture Sequence 350 data structure maynot be used.

Maze 300 may comprise any software or a combination of hardware andsoftware. Maze 300 may include functions and algorithms for organizingand/or storing Multi-directional Still Pictures 200 and/orMulti-directional Picture Sequences 350. MDP Unit 100 is independent ofany data structures used, and may utilize any maze-like or othersuitable data structures. These data structures may include, but are notlimited to, multi-dimensional mazes, stacked mazes, connected mazesand/or any other suitable data structures that may enable implementationof features and functionalities described herein. In general, MDP Unit100 may include Multi-directional Still Pictures 200 positioned inlocations of a represented object where Multi-directional Still Pictures200 may be interlinked in any conceivable manner. Therefore, each MDPUnit 100 implementation may possess its own unique data structuresdepending on the represented object, and/or on links defined amongMulti-directional Still Pictures 200. In some embodiments, Maze 300 maybe an actual data structure used to organize and/or storeMulti-directional Still Pictures 200 and/or Multi-directional PictureSequences 350. In other embodiments, Maze 300 may be conceptual used toorganize Multi-directional Still Pictures 200 and/or Multi-directionalPicture Sequences 350 in users mind in which case an actual Maze 300data structure may not be used.

Referring to FIG. 4, an embodiment of MDP Unit 100 implemented torepresent an object such as interior of a building (i.e. room, etc.) isillustrated, for example. Such embodiment may enable a user to visuallyexperience an object such as interior of a building where every step maycontain a view of what a user would see stepping through interior of thebuilding at a specific point in time. Any of the previously describedelements such as Multi-directional Still Picture 200, Multi-directionalPicture Sequence 350, Maze 300 and/or other elements may be included inany embodiments of MDP Unit 100 implemented to represent interior of abuilding and/or any other objects. Other additional elements may beincluded as needed, or some of the disclosed ones may be excluded, or acombination thereof may be utilized in alternate embodiments.

Referring to FIG. 5, Multi-directional Still Picture 200 may compriseany software or a combination of hardware and software.Multi-directional Still Picture 200 may include functions and algorithmsfor organizing and/or storing one or more Still Pictures 210 orreferences thereto, and/or one or more Multi-directional Still PictureLinks 220. In some embodiments, a Multi-directional Still Picture 200may include functions and algorithms for organizing and/or storing oneor more Still Pictures 210 or references thereto, one or moreMulti-directional Still Picture Links 220, and/or an Orientation 205. Inother embodiments, a Multi-directional Still Picture 200 may includefunctions and algorithms for organizing and/or storing a data structurewhose data fields may include one or more Still Pictures 210 orreferences thereto, one or more Multi-directional Still Picture Links220, and/or an Orientation 205. In one example, a Multi-directionalStill Picture 200 may include a data structure comprising nine datafields: (1) Forward Still Picture 210 a or reference thereto, (2)Backward Still Picture 210 b or reference thereto, (3) Right StillPicture 210 c or reference thereto, (4) Left Still Picture 210 d orreference thereto, (5) Forward Multi-directional Still Picture Link 220a, (6) Backward Multi-directional Still Picture Link 220 b, (7) RightMulti-directional Still Picture Link 220 c, (8) Left Multi-directionalStill Picture Link 220 d, and (9) Orientation 205. In general, MDP Unit100 may enable a user to view all conceivable views or angles from alocation represented by a Multi-directional Still Picture 200, and/ormay enable a user to move among Multi-directional Still Pictures 200 inall conceivable directions. As such, additional Still Pictures 210 maybe included, but are not limited to, up Still Picture, down StillPicture, diagonal Still Picture, behind Still Picture, turn around StillPicture, reverse Still Picture, oblique Still Picture (i.e. circular,elliptical, etc.), and/or others. Also, additional Multi-directionalStill Picture Links 220 may be included, but are not limited to, uplink, down link, diagonal link, behind link, turn around link, reverselink, oblique link (i.e. circular, elliptical, etc.), and/or others.Multi-directional Still Picture 200 may include some or all the featuresand embodiments of the later described Multi-directional Motion Picture400.

A Still Picture 210 a, 210 b, 210 c, 210 d, etc. may comprise anysoftware or a combination of hardware and software. Still Picture 210 a,210 b, 210 c, 210 d, etc. may include functions and algorithms forstoring a digital picture or reference thereto. While Still Pictures 210may be referred to or illustrated as Still Pictures 210 a-d, one ofordinary skill in art will understand that they may indeed include anynumber of Still Pictures 210 a-n. Still Pictures 210 a, 210 b, 210 c,210 d, etc. may include any format of a digital image along with anysoftware modifying, controlling or organizing that image. In someembodiments, a Still Picture 210 a, 210 b, 210 c, 210 d, etc. mayinclude functions and algorithms for storing a data structure whose datafield may include a digital picture or reference thereto. In general, aStill Picture 210 a, 210 b, 210 c, 210 d, etc. may include or refer to acollection of digitally colored dots (i.e. pixels). Such Still Picture210 a, 210 b, 210 c, 210 d, etc. may include a digital bitmap, a JPEGpicture, a GIF picture, a TIFF picture, a PDF picture, an animatedpicture (i.e. animated GIF picture, etc.), any computer-generatedpicture (i.e. a view of a 3D game or computer-aided design[CAD]/computer-aided manufacturing [CAM] application captured as adigital picture, etc.), any other digital picture or visual content, oran outside application or process of any type that may generate digitalpictures or other visual content. In some aspects, a Still Picture 210a, 210 b, 210 c, 210 d, etc. may include a reference or pointer to adigital picture or other visual content. In some embodiments, a user maycreate a Still Picture 210 a, 210 b, 210 c, 210 d, etc. by utilizing adigital camera, and/or any other digital picture taking equipment (i.e.still or motion picture taking equipment, etc.). Such digital picturetaking equipment may be combined with an apparatus specially constructedfor digital picture creation such as a tripod, rails, wheels, slidablecomponents, robotic arm, and/or other such apparatuses or devices. Inother embodiments, a user may create a Still Picture 210 a, 210 b, 210c, 210 d, etc. by capturing a view (i.e. picture, frame, etc.) of acomputer generated object (i.e. 3D game, CAD/CAM application, etc.). Inother embodiments, a user may create a Still Picture 210 a, 210 b, 210c, 210 d, etc. in a picture editing/creation software such as Adobe'sPhotoshop (i.e. pixel focused), Corel's Draw (i.e. vector focused),and/or any other picture editing/creation software. In some embodiments,a Still Picture 210 a, 210 b, 210 c, 210 d, etc. may be stored in adigital file in Memory 180 or Physical Storage Medium 181 of a ComputingDevice 70. Core Program 110 may then access and utilize the stored StillPicture 210 a, 210 b, 210 c, 210 d, etc. to implement the features andfunctionalities described herein.

A Multi-directional Still Picture Link 220 a, 220 b, 220 c, 220 d, etc.may comprise any software or a combination of hardware and software.Multi-directional Still Picture Link 220 a, 220 b, 220 c, 220 d, etc.may include functions and algorithms for storing a reference or pointerto a Multi-directional Still Picture 200. While Multi-directional StillPicture Links 220 may be referred to or illustrated as Multi-directionalStill Picture Links 220 a-d, one of ordinary skill in art willunderstand that they may indeed include any number of Multi-directionalStill Picture Links 220 a-n. A Multi-directional Still Picture Link 220a, 220 b, 220 c, 220 d, etc. may include functions and algorithms forstoring a data structure whose data field may include a reference orpointer to a Multi-directional Still Picture 200. In some embodiments, aMulti-directional Still Picture Link 220 a, 220 b, 220 c, 220 d, etc.may be undefined, non-existent or empty indicating no reference orpointer to a Multi-directional Still Picture 200. In other embodiments,a Multi-directional Still Picture Link 220 a, 220 b, 220 c, 220 d, etc.may include a reference or pointer to an outside application or process.A Multi-directional Still Picture Link 220 a, 220 b, 220 c, 220 d, etc.may be defined or created automatically by Core Program 110 or by a userthrough a means such as a graphical user interface. A Multi-directionalStill Picture Link 220 a, 220 b, 220 c, 220 d, etc. may also be modifiedby Core Program 110 or by a user through a means such as a graphicaluser interface.

Orientation 205 may comprise any software or a combination of hardwareand software. Orientation 205 may include functions and algorithms forstoring orientation of a Multi-directional Still Picture 200. In someembodiments, Orientation 205 may include functions and algorithms forstoring a data structure whose data field may include orientation of aMulti-directional Still Picture 200. In some embodiments, Orientation205 may be associated with a direction of a Still Picture 210 a, 210 b,210 c, 210 d, etc., with a direction of a Multi-directional StillPicture Link 220 a, 220 b, 220 c, 220 d, etc. and/or with any otherdirection. In some aspects, Orientation 205 may include absolute orrelative orientation. Absolute Orientation 205 may include a referencepoint such as a side of the world (i.e. north, south, east, west,northeast, northwest, southeast, southwest, or any other side of theworld), a nearby tree, a nearby mountain, a nearby building, or anyother reference point. In some embodiments, absolute Orientation 205 mayinclude an association between the reference point (i.e. north, south,east, west, tree, mountain, building, etc.) and a direction such as, forexample, association of north with forward direction (any otherassociations may be defined without limitation). In other embodiments,absolute Orientation 205 may include an association between thereference point (i.e. north, south, east, west, tree, mountain,building, etc.) and a Still Picture 210 a, 210 b, 210 c, 210 d, etc. ofa Multi-directional Still Picture 200 such as, for example, associationof north with Forward Still Picture 210 a (any other associations may bedefined without limitation). In yet other embodiments, absoluteOrientation 205 may include an association between the reference point(i.e. north, south, east, west, tree, mountain, building, etc.) and aMulti-directional Still Picture Link 220 a, 220 b, 220 c, 220 d, etc. ofa Multi-directional Still Picture 200 such as, for example, associationof north with Forward Multi-directional Still Picture Link 220 a (anyother associations may be defined without limitation). RelativeOrientation 205 may include any direction (i.e. forward, backward,right, left, up, down, diagonal, angular, etc.) of a Still Picture 210a, 210 b, 210 c, 210 d, etc., of a Multi-directional Still Picture Link220 a, 220 b, 220 c, 220 d, etc., and/or any other relative direction.In some embodiments, relative Orientation 205 may include an associationbetween a direction (i.e. forward, backward, right, left, up, down,diagonal, angular, etc.) and a Still Picture 210 a, 210 b, 210 c, 210 d,etc. of a Multi-directional Still Picture 200 such as, for example,association of forward direction with Forward Still Picture 210 a (anyother associations may be defined without limitation). In otherembodiments, relative Orientation 205 may include an association betweena direction (i.e. forward, backward, right, left, up, down, diagonal,angular, etc.) and a Multi-directional Still Picture Link 220 a, 220 b,220 c, 220 d, etc. of a Multi-directional Still Picture 200 such as, forexample, association of forward direction with Forward Multi-directionalStill Picture Link 220 a (any other associations may be defined withoutlimitation).

In some embodiments, Orientation 205 may be used to determine whichStill Picture 210 a, 210 b, 210 c, 210 d, etc. may be displayed. Inother embodiments, Orientation 205 may be used to determine a defaultStill Picture 210 a, 210 b, 210 c, 210 d, etc. to be displayed when usermoves from one Multi-directional Still Picture 200 to another. In yetother embodiments, Orientation 205 may be used to determine to whichMulti-directional Still Picture 200 a specific Multi-directional StillPicture Link 220 a, 220 b, 220 c, 220 d, etc. points. A user may chooseto change Orientation 205 or Core Program 110 may change Orientation 205automatically as needed. In some aspects, Core Program 110 may changeOrientation 205 automatically responsive to user's use or execution ofStill Pictures 210 a, 210 b, 210 c, 210 d, etc. and/or Multi-directionalStill Picture Links 220 a, 220 b, 220 c, 220 d, etc. In other aspects,Orientation 205 may change by user's rotating the view of a combinedpicture if picture stitching (later described) is used. MDP Unit 100 mayinclude a setting for a user to choose the circumstances under whichCore Program 110 may change Orientation 205. In one example where northmay be used as absolute Orientation 205 and where north may beassociated with forward direction, when user indicates a right motion byexecuting Right Multi-directional Still Picture Link 220 c, Core Program110 may display Forward Still Picture 210 a of the destinationMulti-directional Still Picture 200. In another example where north maybe used as absolute Orientation 205 and where north may be associatedwith forward direction, user may first want to change the absoluteOrientation 205 to east, and then when user indicates a right motion byexecuting Right Multi-directional Still Picture Link 220 c, Core Program110 may display Right Still Picture 210 c of the destinationMulti-directional Still Picture 200. In yet another example where northmay be used as absolute Orientation 205 and where north may beassociated with forward direction, when user indicates a right motion byexecuting Right Multi-directional Still Picture Link 220 c, Core Program110 may automatically change the absolute Orientation 205 to east andthen display Right Still Picture 210 c of the destinationMulti-directional Still Picture 200. In one example where forwardrelative Orientation 205 may be used, when user indicates a right motionby executing Right Multi-directional Still Picture Link 220 c, CoreProgram 110 may display Forward Still Picture 210 a of the destinationMulti-directional Still Picture 200. In another example where forwardrelative Orientation 205 may be used, when user indicates a right motionby executing Right Multi-directional Still Picture Link 220 c, CoreProgram 110 may use the direction of the last executed Multi-directionalStill Picture Link (i.e. Right Multi-directional Still Picture Link 220c in this example) to automatically change the relative Orientation 205to right and then display Right Still Picture 210 c of the destinationMulti-directional Still Picture 200.

In some embodiments, responsive to a change in absolute or relativeOrientation 205, Core Program 110 may redefine some or all StillPictures 210 a, 210 b, 210 c, 210 d, etc. and/or some or allMulti-directional Still Picture Links 220 a, 220 b, 220 c, 220 d, etc.of some or all Multi-directional Still Pictures 200 to correspond to anew absolute or relative Orientation 205. In one example where north maybe used as absolute Orientation 205 and where north may be associatedwith forward direction, when user indicates right view from a locationrepresented by the current Multi-directional Still Picture 200 byexecuting Right Still Picture 210 c, Core Program 110 may automaticallychange the absolute Orientation 205 of all Multi-directional StillPictures 200 and redefine east as the new forward direction. CoreProgram 110 may perform the following redefinitions of Still Picturesand Multi-directional Still Picture Links of all Multi-directional StillPictures 200: (1) Right Still Pictures 210 c may be redefined as newForward Still Pictures 210 a, (2) Backward Still Pictures 210 b may beredefined as new Right Still Pictures 210 c, (3) Left Still Pictures 210d may be redefined as new Backward Still Pictures 210 b, (4) ForwardStill Pictures 210 a may be redefined as new Left Still Pictures 210 d,(5) Right Multi-directional Still Picture Links 220 c may be redefinedas new Forward Multi-directional Still Picture Links 220 a, (6) BackwardMulti-directional Still Picture Links 220 b may be redefined as newRight Multi-directional Still Picture Links 220 c, (7) LeftMulti-directional Still Picture Links 220 d may be redefined as newBackward Multi-directional Still Picture Links 220 b, and (8) ForwardMulti-directional Still Picture Links 220 a may be redefined as new LeftMulti-directional Still Picture Links 220 d. Once redefinitions arecomplete, Core Program 110 may display the new Forward Still Picture 210a (previous Right Still Picture 210 c before the redefinition) of thecurrent Multi-directional Still Picture 200. Also, if a user indicates aforward movement by executing the new Forward Multi-directional StillPicture Link 220 a (previous Right Multi-directional Still Picture Link220 c before the redefinition) of the current Multi-directional StillPicture 200, Core Program 110 may display the new Forward Still Picture210 a (previous Right Still Picture 210 c before the redefinition) ofthe destination Multi-directional Still Picture 200. In one examplewhere forward relative Orientation 205 may be used, when user indicatesright view from a location represented by the current Multi-directionalStill Picture 200 by executing Right Still Picture 210 c, Core Program110 may automatically change the relative Orientation 205 of allMulti-directional Still Pictures 200 and redefine right direction as thenew forward direction. Core Program 110 may perform the followingredefinitions of Still Pictures and Multi-directional Still PictureLinks of all Multi-directional Still Pictures 200: (1) Right StillPictures 210 c may be redefined as new Forward Still Pictures 210 a, (2)Backward Still Pictures 210 b may be redefined as new Right StillPictures 210 c, (3) Left Still Pictures 210 d may be redefined as newBackward Still Pictures 210 b, (4) Forward Still Pictures 210 a may beredefined as new Left Still Pictures 210 d, (5) Right Multi-directionalStill Picture Links 220 c may be redefined as new ForwardMulti-directional Still Picture Links 220 a, (6) BackwardMulti-directional Still Picture Links 220 b may be redefined as newRight Multi-directional Still Picture Links 220 c, (7) LeftMulti-directional Still Picture Links 220 d may be redefined as newBackward Multi-directional Still Picture Links 220 b, and (8) ForwardMulti-directional Still Picture Links 220 a may be redefined as new LeftMulti-directional Still Picture Links 220 d. Once redefinitions arecomplete, Core Program 110 may display the new Forward Still Picture 210a (previous Right Still Picture 210 c before the redefinition) of thecurrent Multi-directional Still Picture 200. Also, if a user indicates aforward movement by executing the new Forward Multi-directional StillPicture Link 220 a (previous Right Multi-directional Still Picture Link220 c before the redefinition) of the current Multi-directional StillPicture 200, Core Program 110 may display the new Forward Still Picture210 a (previous Right Still Picture 210 c before the redefinition) ofthe destination Multi-directional Still Picture 200. In yet otherexamples, a similar change of absolute or relative Orientation 205 andredefinitions of Still Pictures 210 a, 210 b, 210 c, 210 d, etc. and/orMulti-directional Still Picture Links 220 a, 220 b, 220 c, 220 d, etc.of all Multi-directional Still Pictures 200 may be triggered by user'sutilizing or executing any Multi-directional Still Picture Link 220 a,220 b, 220 c, 220 d, etc.

Referring to FIG. 6, an embodiment of MDP Unit 100 implemented as a webapplication in a web browser is illustrated. In some aspects, CoreProgram 110 may be implemented as an embeddable program such as a Javaapplet embedded into a Web Page 810 in which case java applet may bevisually represented by, or include, Window 830. In other aspects, CoreProgram 110 may be implemented as a standalone program such as a Javaprogram that is not embedded into and does not use a web browser or anyother application to realize the functionalities described herein. MDPUnit 100 is not limited to using a Java applet, Java program or anyother programming language or platform described herein. MDP Unit 100may be implemented using any programming language or platform including,but not limited to, HTML, XML, DHTML, Java, Java Script, C++, VisualBasic, Basic, Perl, PhP, Ruby and others. Languages and applicationsthat MDP Unit 100 may be embedded into or implemented within include,but are not limited to, HTML, XML, DHTML, Java, Java Script, C++, VisualBasic, Basic, Perl, PhP, Ruby, web applications, activeX applications,flash applications, Microsoft applications, Lotus applications, Corelapplications, Adobe applications, Netscape applications, Firefoxapplications, Google applications, Yahoo applications, Facebookapplications, and others.

In one example where Core Program 110 may be implemented as Java applet,the following may be a statement embedded into Hypertext Markup Language(HTML) of Web Page 810 used to initiate Java applet:

<APPLET ARCHIVE=“MDP.jar” CODE=“MDP.class” NAME=“MDP” HEIGHT=335WIDTH=310>

In the above statement, ARCHIVE=“MDP.jar” may be the name of the filewhere the Core Program's 110 executable code is stored. CODE=“MDP.class”may be the object of the Core Program 110. NAME=“MDP” may be the name ofthe Java applet within Web Page 810. HEIGHT=335 WIDTH=310 may be theheight and width of the Java applet in pixels within Web Page 810.

Following an initiation of the Java applet, Core Program 110 may utilizeMulti-directional Still Pictures 200 and/or any other data structures(i.e. sequences, maze, etc.) by accessing and reading Multi-directionalPictures Repository 115. Multi-directional Pictures Repository 115 mayinclude data fields of Multi-directional Still Pictures 200 and/or anyother data structures (i.e. sequences, maze, etc.) as well asinformation on which Multi-directional Still Picture 200 may be theinitial one to execute. In some embodiments, Multi-directional PicturesRepository 115 and/or any information needed to utilizeMulti-directional Still Pictures 200 and/or any other data structures(i.e. sequences, maze, etc.) may be embedded into HTML of Web Page 810.In one example, Multi-directional Pictures Repository 115 utilized insome embodiments may include:

<PARAM NAME=picture0 VALUE=“picture0”> <PARAM NAME=forward_picture0VALUE=“Pic0.jpg”> <PARAM NAME=backward_picture0 VALUE=“Pic1.jpg”> <PARAMNAME=right_picture0 VALUE=“Pic2.jpg”> <PARAM NAME=left_picture0VALUE=“Pic3.jpg”> <PARAM NAME=forward_link0 VALUE=“picture1”> <PARAMNAME=backward_link0 VALUE=“null”> <PARAM NAME=right_link0 VALUE=“null”><PARAM NAME=left_link0 VALUE=“null”> <PARAM NAME=picture1VALUE=“picture1”> <PARAM NAME=forward_picture1 VALUE=“Pic4.jpg”> <PARAMNAME=backward_picture1 VALUE=“Pic5.jpg”> <PARAM NAME=right_picture1VALUE=“Pic6.jpg”> <PARAM NAME=left_picture1 VALUE=“Pic7.jpg”> <PARAMNAME=forward_link1 VALUE=“picture2”> <PARAM NAME=backward_link1VALUE=“picture0”> <PARAM NAME=right_link1 VALUE=“picture3”> <PARAMNAME=left_link1 VALUE=“picture4 ”> ...

The first set of definitions (first nine lines of the above code) mayinclude an initial Multi-directional Still Picture 200 to be executedwhen Core Program 110 starts.

<PARAM NAME=picture0 VALUE=“picture0”> may indicate that the initialMulti-directional Still Picture 200 may be a Multi-directional StillPicture 200 named “picture0”.

<PARAM NAME=forward_picture0 VALUE=“Pic0.jpg”> may indicate that ForwardStill Picture 210 a of the initial Multi-directional Still Picture 200may be a digital picture named “Pic0.jpg”.

<PARAM NAME=backward_picture0 VALUE=“Pic1.jpg”> may indicate thatBackward Still Picture 210 b of the initial Multi-directional StillPicture 200 may be a digital picture named “Pic1.jpg”.

<PARAM NAME=right_picture0 VALUE=“Pic2.jpg”> may indicate that RightStill Picture 210 c of the initial Multi-directional Still Picture 200may be a digital picture named “Pic2.jpg”.

<PARAM NAME=left_picture0 VALUE=“Pic3.jpg”> may indicate that Left StillPicture 210 d of the initial Multi-directional Still Picture 200 may bea digital picture named “Pic3.jpg”.

<PARAM NAME=forward_link0 VALUE=“picture1”> may indicate that ForwardMulti-directional Still Picture Link 220 a of the initialMulti-directional Still Picture 200 may point to a Multi-directionalStill Picture 200 named “picture1”.

<PARAM NAME=backward_link0 VALUE=“null”> may indicate that BackwardMulti-directional Still Picture Link 220 b of the initialMulti-directional Still Picture 200 may be empty and may not point to aMulti-directional Still Picture 200 or to an outside application orprocess.

<PARAM NAME=right_link0 VALUE=“null”> may indicate that RightMulti-directional Still Picture Link 220 c of the initialMulti-directional Still Picture 200 may be empty and may not point to aMulti-directional Still Picture 200 or to an outside application orprocess,

<PARAM NAME=left_link0 VALUE=“null”> may indicate that LeftMulti-directional Still Picture Link 220 d of the initialMulti-directional Still Picture 200 may be empty and may not point to aMulti-directional Still Picture 200 or to an outside application orprocess.

The second set of definitions (next nine lines of the above code)follows the same logic of utilizing a next Multi-directional StillPicture 200 based on the above-described process. “ . . . ” indicatesthat any number of additional Multi-directional Still Pictures 200 maybe utilized by the same process.

Web Browser 800 may comprise any software or a combination of hardwareand software. Web Browser 800 may include functions and algorithms foraccessing, presenting and/or navigating information. Web Browser 800 mayinclude functions and algorithms for accessing, presenting and/ornavigating information accessible over a network. Information mayinclude Web Pages 810, software applications, programs, databases,and/or any other information or resource. Examples of Web Browsers 800include Mozilla Firefox, Google Chrome, Netscape Navigator, MicrosoftInternet Explorer, and others.

Web Page 810 may comprise any software or a combination of hardware andsoftware. Web Page 810 may include functions and algorithms for storinginformation. Web Page 810 may include functions and algorithms forstoring information readable by a Web Browser 800 or by any othersoftware application, program, device, and/or system able to read webpages. In some embodiments, Web Page 810 may be stored in a file thatmay reside on a Remote Computing Device 1310 (later described)accessible over a Network 1300 (later described). In other embodiments,Web Page 810 may be stored in a file that may reside on a user'sComputing Device 70. In yet other embodiments, Web Page 810 may bedynamically created by a program and delivered over a network. Examplesof Web Page 810 formats and/or programs that may dynamically create WebPages 810 include HTML, XML, DHTML, Java Script, Perl, PhP, Ruby, andothers.

Window 830 may comprise any hardware, software or a combination ofhardware and software. Window 830 may include functions and algorithmsfor visual representation of an instance of MDP Unit 100. In someembodiments, Window 830 may include Picture Display 840, ForwardDirection Arrow 850 a, Backward Direction Arrow 850 b, Right DirectionArrow 850 c, Left Direction Arrow 850 d, Forward Picture Arrow 860 a,Backward Picture Arrow 860 b, Right Picture Arrow 860 c, Left PictureArrow 860 d, and/or Orientation Pointer 870. Other additional elementsmay be included as needed, or some of the disclosed ones may beexcluded, or a combination thereof may be utilized in alternateembodiments.

Picture Display 840 may comprise any hardware, software or a combinationof hardware and software. Picture Display 840 may include functions andalgorithms for showing or rendering (i.e. depicting, etc.) pictures tothe user. Picture Display 840 may include functions and algorithms forshowing or rendering Still Pictures 210 a, 210 b, 210 c, 210 d, etc. orMotion Pictures 410 a, 410 b, 410 c, 410 d, etc. (later described).Picture Display 840 may also show or render any other visual contentincluding visual content generated by outside applications or processesin which case the user may interact with the outside application orprocess through Picture Display 840. In general, Picture Display 840 mayshow any visual content and/or enable any interaction with an outsideapplication or process as long as Picture Display 840 may (1) access aninterpreter that may include information on how to graphically interpreta particular visual content, or (2) access an interface that may includeinformation on how to interact with a particular outside application orprocess. Such interpreter or interface may include a plugin (alsoreferred to as addin, extension, etc.) such as a plugin for Java VirtualMachine that may be installed in Web Browser 800, a Web applicationplugin, an ActiveX plugin, a Flash plugin, a Microsoft plugin, a Lotusplugin, a Corel plugin, a Adobe plugin, a Netscape plugin, a Firefoxplugin, a Google plugin, a Yahoo plugin, a Facebook plugin, any driver,any program or file such as HTML, XML, DHTML, Java, Java Script, C++,Visual Basic, Basic, Perl, PhP, and others.

Direction Arrow 850 a, 850 b, 850 c, 850 d, etc. may comprise anyhardware, software or a combination of hardware and software. DirectionArrow 850 a, 850 b, 850 c, 850 d, etc. may include functions andalgorithms for referencing Multi-directional Still Picture Link 220 a,220 b, 220 c, 220 d, etc. or Multi-directional Motion Picture Link 420a, 420 b, 420 c, 420 d, etc. (later described). Each Direction Arrow 850a, 850 b, 850 c, 850 d, etc. may be associated with its correspondingMulti-directional Still Picture Link 220 a, 220 b, 220 c, 220 d, etc. orMulti-directional Motion Picture Link 420 a, 420 b, 420 c, 420 d, etc.In addition to Forward Direction Arrow 850 a, Backward Direction Arrow850 b, Right Direction Arrow 850 c, and Left Direction Arrow 850 d, anynumber of other Direction Arrows may be utilized including up DirectionArrow, down Direction Arrow, diagonal Direction Arrow, angular DirectionArrow, behind Direction Arrow, turn around Direction Arrow, reverseDirection Arrow, oblique Direction Arrow (i.e. circular, elliptical,etc.), and others. In general, any Direction Arrow may be utilizedcorresponding to its associated Multi-directional Still Picture Link orMulti-directional Motion Picture Link. In some embodiments, DirectionArrow 850 a, 850 b, 850 c, 850 d, etc. may be implemented as a pushbutton (i.e. web form push button, etc.). In other embodiments,Direction Arrow 850 a, 850 b, 850 c, 850 d, etc. may be implemented as apicture or other visual representation of a direction sign. User mayselect or activate Direction Arrow 850 a, 850 b, 850 c, 850 d, etc. bypressing a keyboard key, by touching a touch screen button, by clickinga mouse button, by pressing a game controller button, by pressing ajoystick button, by pressing a remote control button, by sliding acontrol wheel (i.e. iPod control wheel, etc.), or by using other inputmeans associated with particular Direction Arrow 850 a, 850 b, 850 c,850 d, etc. When a user selects a Direction Arrow 850 a, 850 b, 850 c,850 d, etc., Core Program 110 may execute a Multi-directional StillPicture Link 220 a, 220 b, 220 c, 220 d, etc. or a Multi-directionalMotion Picture Link 420 a, 420 b, 420 c, 420 d, etc. associated with theselected Direction Arrow 850 a, 850 b, 850 c, 850 d, etc. In someembodiments, certain areas on the Picture Display 840 may be associatedwith Multi-directional Still Picture Links 220 a, 220 b, 220 c, 220 d,etc. or Multi-directional Motion Picture Links 420 a, 420 b, 420 c, 420d, etc. in which case Direction Arrows 850 a, 850 b, 850 c, 850 d, etc.may be used as secondary input means or not used at all. In one example,a user's clicking on any part of a park's forward walkway depicted in aStill Picture 210 a, 210 b, 210 c, 210 d, etc. or Motion Picture 410 a,410 b, 410 c, 410 d, etc. may execute Forward Multi-directional StillPicture Link 220 a or Forward Multi-directional Motion Picture Link 420a without using Direction Arrows 850 a, 850 b, 850 c, 850 d, etc.

Picture Arrow 860 a, 860 b, 860 c, 860 d, etc. may comprise anyhardware, software or a combination of hardware and software. PictureArrow 860 a, 860 b, 860 c, 860 d, etc. may include functions andalgorithms for referencing Still Picture 210 a, 210 b, 210 c, 210 d,etc. or Motion Picture 410 a, 410 b, 410 c, 410 d, etc. (laterdescribed). Each Picture Arrow 860 a, 860 b, 860 c, 860 d, etc. may beassociated with its corresponding Still Picture 210 a, 210 b, 210 c, 210d, etc. or Motion Picture 410 a, 410 b, 410 c, 410 d, etc. In additionto Forward Picture Arrow 860 a, Backward Picture Arrow 860 b, RightPicture Arrow 860 c, and Left Picture Arrow 860 d, any number of otherPicture Arrows may be utilized including up Picture Arrow, down PictureArrow, diagonal Picture Arrow, angular Picture Arrow, behind PictureArrow, turn around Picture Arrow, reverse Picture Arrow, oblique PictureArrow (i.e. circular, elliptical, etc.), and others. In general, anyPicture Arrow may be utilized corresponding to its associated StillPicture or Motion Picture. In some embodiments, Picture Arrow 860 a, 860b, 860 c, 860 d, etc. may be implemented as a push button (i.e. web formpush button, etc.). In other embodiments, Picture Arrow 860 a, 860 b,860 c, 860 d, etc. may be implemented as a picture or other visualrepresentation of a directional sign. User may select or activatePicture Arrow 860 a, 860 b, 860 c, 860 d, etc. by pressing a keyboardkey, by touching a touch screen button, by clicking a mouse button, bypressing a game controller button, by pressing a joystick button, bypressing a remote control button, by sliding a control wheel (i.e. iPodcontrol wheel, etc.), or by using other input means associated withparticular Picture Arrow 860 a, 860 b, 860 c, 860 d, etc. When a userselects a Picture Arrow 860 a, 860 b, 860 c, 860 d, etc., Core Program110 may execute a Still Picture 210 a, 210 b, 210 c, 210 d, etc. orMotion Picture 410 a, 410 b, 410 c, 410 d, etc. associated with theselected Picture Arrow 860 a, 860 b, 860 c, 860 d, etc.

Orientation Pointer 870 may comprise any hardware, software or acombination of hardware and software. Orientation Pointer 870 mayinclude functions and algorithms for referencing Orientation 205.Orientation Pointer 870 may be associated with any absolute or relativeOrientation 205 previously described such as north, south, east, west,northeast, northwest, southeast, southwest, tree, mountain, building,forward, backward, right, left, angular, and others. In someembodiments, Orientation Pointer 870 may be implemented as a push button(i.e. web form push button, etc.). In other embodiments, OrientationPointer 870 may be implemented as a picture or other visualrepresentation of an orientation sign. User may select or activateOrientation Pointer 870 by pressing a keyboard key, by touching a touchscreen button, by clicking a mouse button, by pressing a game controllerbutton, by pressing a joystick button, by pressing a remote controlbutton, by sliding a control wheel (i.e. Pod control wheel, etc.), or byusing other input means associated with Orientation Pointer 870. Once auser selects Orientation Pointer 870, any means of changing Orientation205 may be utilized such as selecting orientation choices (i.e. north,south, east, west, northeast, northwest, southeast, southwest, tree,mountain, building, forward, backward, right, left, angular, etc.) froma list, utilizing directional signs (i.e. arrows, pointers, etc.)representing orientation choices, utilizing x, y, and z axes and/or anycoordinates representing orientation choices in 3D objects or spaces,sliding a wheel component (i.e. control wheel, etc.) of an input devicein the direction of orientation choices, or any other means of changingOrientation 205. When a user selects Orientation Pointer 870 includingany sub-selections, Core Program 110 may change Orientation 205. In someembodiments, responsive to a change in Orientation 205, Core Program 110may redefine some or all Still Pictures 210 a, 210 b, 210 c, 210 d, etc.and/or some or all Multi-directional Still Picture Links 220 a, 220 b,220 c, 220 d, etc. of some or all Multi-directional Still Pictures 200to correspond to a new Orientation 205 as previously described. In otherembodiments, responsive to a change in Orientation 205, Core Program 110may redefine some or all Motion Pictures 410 a, 410 b, 410 c, 410 d,etc. and/or some or all Multi-directional Motion Picture Links 420 a,420 b, 420 c, 420 d, etc. of some or all Multi-directional MotionPictures 400 to correspond to a new Orientation 205.

Map 820 may comprise any hardware, software or a combination of hardwareand software. Map 820 may include functions and algorithms forrepresentation of an object and/or its associated Multi-directionalStill Pictures 200 or Multi-directional Motion Pictures 400 in aminiaturized form. In some embodiments, Map 820 may be implemented as adigital picture comprising locations (i.e. “hot spots”) that a user canclick to quickly move to a specific Multi-directional Still Picture 200or Multi-directional Motion Picture 400 of interest. In suchembodiments. Map 820 may be an example of an outside application orprocess that may execute Multi-directional Still Pictures 200 withinCore Program 110. Such execution may be implemented using one or moreglobal functions accessible or executable by the outside application orprocess. Global functions are widely used in software design whereapplications or processes need to execute each other's internalfunctions. Such global functions may be available within the Javaplatform, the operating system, any system elements, or any elements ofthe Computing Device 70. Such global functions may further have accessto one or more Core Program's 110 internal functions, objects, orprocedures. In the case that an outside application or process may needto execute a Multi-directional Still Picture 200 or Multi-directionalMotion Picture 400, it may first execute a global function includingpassing any parameters to the global function. The executing globalfunction may then reference and execute a desired Multi-directionalStill Picture 200 or Multi-directional Motion Picture 400 executionfunction, or any other internal function within the Core Program 110. Inone example, an outside application or process such as the Map 820 mayexecute a specific Multi-directional Still Picture 200 orMulti-directional Motion Picture 400 associated with a clickablelocation (i.e. “hot spot”) of interest on the Map 820. Clicking on alocation (i.e. “hot spot”) of interest may enable a user to quicklydisplay a Multi-directional Still Picture 200 or Multi-directionalMotion Picture 400 associated with the clicked location (i.e. “hotspot”) of interest without having to move among other Multi-directionalStill Pictures 200 or Multi-directional Motion Picture 400 to arrive atsuch location of interest. The outside application or process (i.e. Map820 in this example) may execute a global function including passing toit parameters such as an identifier of the Multi-directional StillPicture 200 or Multi-directional Motion Picture 400 to be executed. Theexecuting global function may then execute a desired Core Program's 110internal function such as Multi-directional Still Picture 200 orMulti-directional Motion Picture 400 execution function. In someembodiments, a Core Program's internal function may be defined as aglobal function in which case outside applications or processes wouldhave direct access to it. In general, an outside application or processmay execute any Core Program's 110 internal function that is defined asa global function or for which there exists a global function accessibleor executable by an outside application or process.

In some embodiments, a Multi-directional Still Picture Link 220 a, 220b, 220 c, 220 d, etc. or Multi-directional Motion Picture Link 420 a,420 b, 420 c, 420 d, etc. may include a reference or pointer to anoutside application or process which the Core Program 110 may interactwith or execute. In some aspects, such execution may be implementedusing one or more global functions accessible or executable by CoreProgram 110. As previously described, global functions are widely usedin software design where applications or processes need to execute eachother's internal functions and, as such, global functions may enable theCore Program 110 to access one or more internal functions, objects, orprocedures of outside applications or processes. In the case that CoreProgram 110 needs to execute an outside application or process, it mayfirst execute a global function including passing any parameters to theglobal function. The executing global function may then reference andexecute a desired function of the outside application or process. In oneexample, a Multi-directional Still Picture Link 220 a, 220 b, 220 c, 220d, etc. or Multi-directional Motion Picture Link 420 a, 420 b, 420 c,420 d, etc. may point to an outside application or process such as a webpage that may contain information about an object or location pointed toby the Multi-directional Still Picture Link 220 a, 220 b, 220 c, 220 d,etc. or Multi-directional Motion Picture Link 420 a, 420 b, 420 c, 420d, etc. Core Program 110 may execute the outside application orprocesses (i.e. open a web browser and show the web page in thisexample, etc.) by executing a global function including passing to itparameters such as a URL of the web page to be viewed in the webbrowser. The executing global function may then execute a desiredinternal function of the outside application or process (i.e. webbrowser in this example) such as a function for showing the web page. Insome embodiments, an internal function of an outside application orprocess may be defined as a global function in which case Core Program110 would have direct access to it. In general, Core Program 110 mayexecute any internal function of an outside application or process thatis defined as a global function or for which there exists a globalfunction accessible or executable by Core Program 110.

In some embodiments, an instance of MDP Unit 100 may start by CoreProgram's 110 executing or displaying a Still Picture 210 a, 210 b, 210c, 210 d, etc. of an initial Multi-directional Still Picture 200. AnyMulti-directional Still Picture 200 may be defined to be initial. In oneexample, initial Multi-directional Still Picture 200 may include aForward Still Picture 210 a with a view of a park's walkway facing oneof the nearby buildings as shown in Step 1 of FIG. 6. Core Program 110may display the Forward Still Picture 210 a of the initialMulti-directional Still Picture 200 in Picture Display 840, Core Program110 may then associate Picture Arrows 860 a, 860 b, 860 c, 860 d, etc.with Still Pictures 210 a, 210 b, 210 c, 210 d, etc. of the initialMulti-directional Still Picture 200. Core Program 110 may furtherassociate Direction Arrows 850 a, 850 b, 850 c, 850 d, etc. withMulti-directional Still Picture Links 220 a, 220 b, 220 c, 220 d, etc.of the initial Multi-directional Still Picture 200. Core Program 110 mayfurther associate Orientation Pointer 870 with Orientation 205 of theinitial Multi-directional Still Picture 200. User may select or activatea Picture Arrow 860 a, 860 b, 860 c, 860 d, etc. responsive to whichCore Program 110 may display a Still Picture 210 a, 210 b, 210 c, 210 d,etc. to which the selected Picture Arrow 860 a, 860 b, 860 c, 860 d,etc. points. This way, user may change the view from a locationrepresented by the initial Multi-directional Still Picture 200. User mayalso select or activate a Direction Arrow 850 a, 850 b, 850 c, 850 d,etc. responsive to which Core Program 110 may execute Multi-directionalStill Picture 200 to which Multi-directional Still Picture Link 220 a,220 b, 220 c, 220 d, etc. associated with the selected Direction Arrow850 a, 850 b, 850 c, 850 d, etc. points. This way, user may move fromthe initial to another Multi-directional Still Picture 200, which maybring user to a next location on the park's walkway such as the locationdepicted in Step 2 of FIG. 6. User may similarly utilize DirectionArrows 850 a, 850 b, 850 c, 850 d, etc. to move among anyMulti-directional Still Pictures 200. User may also select or activateOrientation Pointer 870 responsive to which Core Program 110 may changeOrientation 205. As such, MDP Unit 100 may enable a user to view allviews (i.e. forward, backward, right, left, up, down, diagonal, angular,etc.) from all locations (i.e. Multi-directional Still Pictures 200) ofa represented object (i.e. park in this example) as well as to simulateuser's motion (i.e. stepping, flying, etc.) through the representedobject (i.e. park in this example). Execution of a subsequentMulti-directional Still Picture 200 may trigger any of the describedsteps of executing the initial Multi-directional Still Picture 200. Anyof the described steps of executing the initial Multi-directional StillPicture 200 may similarly be utilized with Multi-directional MotionPictures 400 (later described) where Core Program 110 may display MotionPictures 410 a, 410 b, 410 c, 410 d, etc., associate Picture Arrows 860a, 860 b, 860 c, 860 d, etc. with Motion Pictures 410 a, 410 b, 410 c,410 d, etc., associate Direction Arrows 850 a, 850 b, 850 c, 850 d, etc.with Multi-directional Motion Picture Links 420 a, 420 b, 420 c, 420 d,etc., associate Orientation Pointer 870 with Orientation 405, and/orperform other operations as described,

Referring to FIG. 7, the illustration shows an embodiment of a method2100 for using a collection of Multi-directional Still Pictures 200representing an object. The steps of this exemplary method may thereforebe used by a user on a computing device operating an interface for MDPUnit 100 to enable the user to view all views (i.e. forward, backward,right, left, up, down, diagonal, etc.) from all locations of therepresented object and enable the user to move among themulti-directional still pictures simulating motion through therepresented object. One of ordinary skill in art will understand thatsome or all steps of this method may be reordered, and that otheradditional steps may be included as needed, or some of the disclosedones may be excluded, or a combination thereof may be utilized inalternate embodiments. Some or all steps of this method may similarly beimplemented for using a collection of Multi-directional Motion Pictures400 (later described) representing an object.

At step 2105, a collection of multi-directional still pictures eachassociated with a location of a represented object and including one ormore differently directed still pictures and one or more links to otherone or more multi-directional still pictures is maintained in memory ofa computing device. MDP Unit 100 may enable interactive visualrepresentation of objects using multi-directional still picturesassociated with locations of the represented object. Any locations maybe used to represent the object. In one example, steps (i.e. every twofeet, etc.) in a park's walkways may be used as the locations tosimulate a user's stepping through the park. In another example, evenlyspaced points (i.e. points in the center of every square yard, etc.) ina building's interior may be used as the locations to simulate a user'sstepping through the building. In some embodiments, a multi-directionalstill picture may include a data structure storing one or moredifferently directed still pictures and one or more links to othermulti-directional still pictures. In some embodiments, multi-directionalstill pictures may be ordered to include a first multi-directional stillpicture, followed by a second multi-directional still picture, which mayalso be followed by a third multi-directional still picture, and so on,to complete a sequence. In other embodiments, multi-directional stillpictures may be arranged in a maze that may correspond to a shape of arepresented object. In yet other embodiments, multi-directional stillpictures may be interlinked in any conceivable manner without using anyintermediary or supporting data structures such as the sequence and/ormaze. Generally, multi-directional still pictures may correspond to ashape of a represented object. In some embodiments, any number ofmulti-directional still pictures including still pictures pointed to anynumber of directions (i.e. forward, backward, right, left, up, down,diagonal, etc.) may be utilized to cover the entire represented object.In other embodiments, any number of multi-directional still picturesincluding still pictures pointed to any number of directions (i.e.forward, backward, right, left, up, down, diagonal, etc.) may beutilized to cover a portion of the represented object. Also, any numberof links among multi-directional still pictures may be used. Such linksmay connect multi-directional still pictures in any conceivabledirection (i.e. forward, backward, right, left, up, down, diagonal,etc.). The links may enable the user to move among multi-directionalstill pictures this way simulating motion through the representedobject.

At step 2110, a first still picture depicting a first view from alocation associated with a first multi-directional still picture isdisplayed on the computing device. The user may view on the display ofthe computing device a still picture such as the first still picture ofthe first multi-directional still picture. In one example, the firstlocation may be a logical starting point such as a location near anentrance into a park or near a door of a building in which case thefirst still picture may depict a view from this logical startinglocation (i.e. a view of what a pedestrian would see entering a gate ofthe park, etc.). In another example, the first location may be anylocation of the represented object. In some embodiments, a still picturesuch as the first still picture of the first multi-directional stillpicture may be obtained from a file, a data structure, an object, and/orother similar digital data repository. In other embodiments, a stillpicture may be obtained from a database management system (DBMS), adatabase, a system, a process, and/or other similar digital datarepository. In further embodiments, a still picture may be embeddedwithin an instance of MDP Unit 100 (i.e. hard coded in the Core Program110). In yet further embodiments, a still picture may be obtained from aseparate file (i.e. object file, etc.), a separate data structure, aseparate DBMS, a separate database, a separate system, a separateprocess, and/or other separate digital data repository or system foreach of the still pictures or references thereto. In yet furtherembodiments, a still picture may be obtained from a collection ofdefinitions of pictures or references thereto embedded in other files orprograms. In some embodiments, a still picture may be obtained from aMulti-directional Pictures Repository 115 that may further include afile (i.e. object file, etc.), a data structure, a DBMS, a database, asystem, a process, and/or other separate digital data repository orsystem. In some embodiments, picture processing may be implemented toinsert or overlay a picture of an avatar into/onto a still picture suchas the first still picture. Displaying may include any action oroperation by or for a Picture Display 840.

At step 2115, the computing device receives a selection of a secondstill picture of the first multi-directional still picture. In someembodiments, MDP Unit 100 may include a means such as a graphical userinterface (GUI) configured to show on the display of the computingdevice graphical pointers each associated with a specific still pictureand/or specific multi-directional still picture link of amulti-directional still picture such as the first multi-directionalstill picture. In one example, a pointer to each of the one or morestill pictures of the first multi-directional still picture and apointer to each of the one or more links of the first multi-directionalstill picture may be displayed on the computing device for selection bya user. In some embodiments, a pointer in a GUI may include an arrow, atriangle, a push button (i.e. web form push button, etc.), a picture,and/or other such graphical directional signs or indicia indicating adirection of its associated still picture and/or multi-directional stillpicture link. In one example, an upward pointed triangle may beassociated with a forward still picture and/or an upward pointed arrowmay be associated with a forward multi-directional still picture link.In other embodiments, certain areas on the displayed still picture maybe associated with other still pictures and/or multi-directional stillpicture links in which case pointers may be used as secondary inputmeans or not used at all. In one example, a user's clicking on any partof a park's forward walkway depicted in a still picture may execute aforward multi-directional still picture link without selecting itsassociated pointer. A pointer may be selected through any internal orexternal input means of the computing device such as keyboard, mouse,touch screen, control wheel, remote control, joystick, microphone,and/or other similar input means. User may select a pointer by pressingkeyboard keys, by touching touch screen buttons, by clicking mousebuttons, by pressing game controller buttons, by pressing joystickbuttons, by pressing remote control buttons, by sliding a control wheel(i.e. iPod control wheel, etc.), or by using other directional meansassociated with particular pointer. Upon user's selection, the selectedpointer may be received by the interface for a MDP Unit 100. Theselected pointer may be received by the user's computing device, or byany other computing device in general. The selected pointer may bereceived by any component of MDP Unit 100. A pointer may include anyaction or operation by or for a Direction Arrow 850 a, 850 b, 850 c, 850d, etc. and/or Picture Arrow 860 a, 860 b, 860 c, 860 d, etc.

At step 2120, the second still picture depicting a second view from thelocation associated with the first multi-directional still picture isdisplayed on the computing device. When a user selects a still picture,the selected still picture may be shown on the display of the computingdevice. Displaying may include any action or operation by or for aPicture Display 840,

At step 2125, steps 2115 and 2120 are repeated for any additional stillpictures of the first multi-directional still picture. Steps 2115 and2120 may be performed repeatedly to display any subsequent stillpictures of a multi-directional still picture such as the firstmulti-directional still picture. Steps 2115 and 2120 may therefore beperformed to enable the user to view all views (i.e. forward, backward,right, left, up, down, diagonal, etc.) from the location associated witha multi-directional still picture such as the first multi-directionalstill picture.

At step 2130, the computing device receives a selection of a first linkof the first multi-directional still picture, the first link associatedwith a second multi-directional still picture. Step 2130 may include anyaction or operation described in step 2115 as applicable.

At step 2135, a first still picture depicting a first view from alocation associated with the second multi-directional still picture isdisplayed on the computing device. Step 2135 may include any action oroperation described in step 2120 as applicable. In some embodiments, apointer to each of the one or more still pictures of the secondmulti-directional still picture and a pointer to each of the one or morelinks of the second multi-directional still picture may be displayed onthe computing device for selection by the user.

At step 2140, steps 2115-2135 are repeated for any additional stillpictures or multi-directional still pictures. Steps 2115-2135 may beperformed repeatedly to display any still pictures of anymulti-directional still pictures and/or to move among anymulti-directional still pictures.

In some aspects, the teaching presented by the disclosure may beimplemented in a device or system for using multi-directional stillpictures. The device or system may include a processor and an interface,coupled to the processor, for receiving a collection ofmulti-directional still pictures each multi-directional still pictureassociated with a location of a represented object and including one ormore differently directed still pictures and one or more links to otherone or more multi-directional still pictures. The device or system mayfurther include a display, coupled to the processor, for rendering afirst still picture depicting a first view from a location associatedwith a first multi-directional still picture. The device or system mayfurther include an input device, coupled to the processor, for receivinga selection of a first link of the first multi-directional stillpicture, the first link associated with a second multi-directional stillpicture, wherein the processor may be programmed to cause the display torender a first still picture depicting a first view from a locationassociated with the second multi-directional still picture. The inputdevice may further be configured to receive a selection of a secondstill picture of the second multi-directional still picture, wherein theprocessor may further be programmed to cause the display to render thesecond still picture depicting a second view from the locationassociated with the second multi-directional still picture. Theprocessor, the interface, the display, the input device, and/or otherelements of the device or system for using multi-directional stillpictures may include any features and functionalities of Processor 11,Core Program 110, Multi-directional Pictures Repository 115, InputInterface 140, Keyboard 150 or any other input device, Output interface160, Display 170, and/or other disclosed elements. The device or systemmay also include any functionalities or steps of any disclosed methodssuch as, for example, method 2100. For example, Keyboard 150 and/or anyother input device may provide a means for inputting a user's operatinginstructions on movement through and view of the represented object.Input interface 140 may process input events of Keyboard 150 and/orother input device for use by Core Program 110 or other disclosedelements. Core Program 110 may be implemented on Processor 11 and it mayread still pictures or references thereto, any data structures (i.e.multi-directional still pictures, mazes, sequences, etc.) and/or otherelements from Multi-directional Pictures Repository 115 to obtainappropriate still pictures from various locations of a representedobject that may correspond to user's operating instructions. Outputinterface 160 may process the still pictures from Core Program 110 orother disclosed elements for viewing on Display 170 or other outputdevice. Display 170 may render, display or show the still pictures fromvarious locations of the represented object.

In some embodiments, MDP Unit 100 may be utilized to generate non-visualor no output. Such embodiments address any situation where a user mayinteract with an instance of MDP Unit 100 and non-visual output or nooutput is shown to the user. For example, a blind user may prefer tohear sound associated with or representing a selected Multi-directionalStill Picture 200 or its elements. Therefore, a sound file may be playedinstead of picture shown to the blind user. Also, tactile outputassociated with or representing a selected Multi-directional StillPicture 200 or its elements may be presented. The blind user may inputoperating instructions through the above-described Picture Arrows 860 a,860 b, 860 c, 860 d, etc., Direction Arrows 850 a, 850 b, 850 c, 850 d,etc., Orientation Pointer 870, and/or other elements coupled orassociated with a tactile input device, speech recognizer, or othersuitable interface. As such, MDP Unit 100 may operate and provide sameor similar functionality to the blind user as the MDP Unit 100 thatgenerates visual output for a sighted user.

In some embodiments, MDP Unit 100 may be implemented to represent amulti-leveled object such as, for example, a building with plurality offloors. As such, Multi-directional Still Pictures 200 may be positionedin locations on each floor and in locations on connecting structuressuch as stairs. This way, Multi-directional Still Pictures 200 on eachfloor may be interconnected and the entire building represented. Inother embodiments, MDP Unit 100 may be implemented to represent a threedimensional space such as, for example, a museum room. As such,Multi-directional Still Pictures 200 may be positioned in locations onthe floor and in locations of the room's space (i.e. in the air, etc.).This way, Multi-directional Still Pictures 200 on the floor and in theroom's space (i.e. in the air, etc.) may be interconnected and theentire room's space represented.

Referring to FIG. 8, an embodiment is illustrated in whichMulti-directional Still Picture 200 may include one or moreMulti-directional Still Picture Angles 230. While Multi-directionalStill Picture Angles 230 may be referred to or illustrated asMulti-directional Still Picture Angles 230 a-d, one of ordinary skill inart will understand that they may indeed include any number ofMulti-directional Still Picture Angles 230 a-n. In some embodiments,Multi-directional Still Picture 200 may include functions and algorithmsfor storing a data structure whose data fields may include one or moreMulti-directional Still Picture Angles 230. In one example, aMulti-directional Still Picture 200 may include a data structurecomprising thirteen data fields: (1) Forward Still Picture 210 a, (2)Backward Still Picture 210 b, (3) Right Still Picture 210 c, (4) LeftStill Picture 210 d, (5) Forward Multi-directional Still Picture Link220 a, (6) Backward Multi-directional Still Picture Link 220 b, (7)Right Multi-directional Still Picture Link 220 c, (8) LeftMulti-directional Still Picture Link 220 d, (9) ForwardMulti-directional Still Picture Angle 230 a, (10) BackwardMulti-directional Still Picture Angle 230 b, (11) RightMulti-directional Still Picture Angle 230 c, (12) Left Multi-directionalStill Picture Angle 230 d, and/or (13) Orientation 205.Multi-directional Still Picture Angle 230 a, 230 b, 230 c, 230 d, etc.may be utilized to indicate angle at which a Multi-directional StillPicture 200 referenced or pointed to by a specific Multi-directionalStill Picture Link 220 a, 220 b, 220 c, 220 d, etc. is relative to thecurrent Multi-directional Still Picture 200. As such, Multi-directionalStill Picture Angles 230 a, 230 b, 230 c, 230 d, etc. may be utilized inrepresentations of objects where Multi-directional Still Pictures 200may be arranged at angles other than ninety degrees. In one example,some of a park's walkways may be constructed in a “V” shaped (i.e. fork,etc.) form. Multi-directional Still Pictures 200 includingMulti-directional Still Picture Angles 230 a, 230 b, 230 c, 230 d, etc.may capture this physical feature of the represented object (i.e. parkin this example). In another example, a user may want to obtain agraphical representation (i.e. a printout, map, etc.) of the representedobject including a collection of Multi-directional Still Pictures 200.The graphical representation of the collection of Multi-directionalStill Pictures 200 may be accurately displayed by usingMulti-directional Still Picture Angles 230 a, 230 b, 230 c, 230 d, etc.Any Multi-directional Still Picture Angle 230 may be used such as, forexample, 3 degree, 4 degree, 5 degree, 6 degree, 7 degree, 9 degree, 10degree, 11 degree, 15 degree, 23 degree, 25 degree, 28 degree, 30degree, 35 degree, 45 degree, 47 degree, 60 degree, 66 degree, 75degree, 88 degree, 90 degree, 113 degree, 187 degree, 256 degree, 299degree, 315 degree, 348 degree, 360 degree, 553 degree, 1692 degree,32884 degree, and others. In addition to degrees, units of measurementfor Multi-directional Still Picture Angles 230 a, 230 b, 230 c, 230 d,etc. may include angular minutes, angular seconds, any fractionsthereof, or any other units of angular measurement. All describedfeatures and embodiments of Multi-directional Still Picture Angles 230a, 230 b, 230 c, 230 d, etc. may similarly be utilized withMulti-directional Motion Pictures 400 (later described) where they maybe referred to as Multi-directional Motion Picture Angles.

Referring to FIG. 9, an embodiment of MDP Unit 100 implemented toinclude stitching of Still Pictures 210 a, 210 b, 210 c, 210 d, etc. ofa Multi-directional Still Picture 200 is illustrated. Any imagestitching or picture stitching algorithms or techniques known in art maybe used to combine multiple digital pictures with overlapping fields ofview. Commonly performed through the use of computer software, mostapproaches to image stitching require nearly exact overlaps betweendistinct pictures. Some picture taking equipment such as high-enddigital cameras may stitch digital pictures internally. Some of theknown software programs and/or algorithms for picture stitching includeAutostitch, Hugin, Panorama Maker, Ptgui, Panorama Tools, MicrosoftResearch Image Composite Editor, CleVR Stitcher, and others. Somegeneral purpose picture editing programs may also stitch digitalpictures such as Adobe Systems' Photoshop, which may include tools knownas Photomerge and Auto-Blend. MDP Unit 100 may utilize stitched picturesfrom one of the above-mentioned programs, or may implement internal(i.e. within Core Program 110) picture stitching by utilizing one of thepublicly available picture stitching algorithms. In one example in whichStill Pictures 210 a, 210 b, 210 c, 210 d, etc. may include overlappingfields of view needed for picture stitching process, the resultingCombined Picture 227 may be a partial or full 360 degrees panoramicpicture that may enable a user to rotate the View 225 from the locationrepresented by a Multi-directional Still Picture 200 in all directions.As such, means of input such as a control wheel, a track ball, virtualball (i.e. a ball shown through a graphical user interface, etc.),and/or other rotational means of input may be used instead of, or inaddition to, Picture Arrows 860 a, 860 b, 860 c, 860 d, etc. In someaspects, user's rotation of View 225 of the Combined Picture 227 may beaccompanied with Core Program's 100 adjustment or change of Orientation205 to correspond to the rotation of view. In other aspects, the meansof input such as control wheel, track ball, virtual ball, and/or otherrotational means of input, Picture Arrows 860 a, 860 b, 860 c, 860 d,etc., and/or other elements of the disclosed methods, systems andapparatuses may themselves rotate to correspond to a change ofOrientation 205 or direction as the view of Combined Picture 227rotates.

In some embodiments in which picture stitching may be implemented,movement among Multi-directional Still Pictures 200 may be implementedby approximating which Multi-directional Still Picture Link 220 a, 220b, 220 c, 220 d, etc. the user wanted to use in cases where the angle ordirection of view of the Combined Picture 227 does not perfectly matchthe angle or direction of a particular Multi-directional Still PictureLink 2208. 220 b, 220 c, 220 d, etc. Such approximation may includecomparing the angle of user's View 225 of the Combined Picture 227 withMulti-directional Still Picture Angles 230 a, 230 b, 230 c, 230 d, etc.to determine the closest Multi-directional Still Picture Link 220 a, 220b, 220 c, 220 d, etc. In one example, Right Multi-directional StillPicture Link 220 c may be approximated from 20 degrees angle of user'sView 225 of the Combined Picture 227. In another example, LeftMulti-directional Still Picture Link 220 d may be approximated from 170degrees angle of user's View 225 of the Combined Picture 227. Alldescribed features and embodiments of stitching Still Pictures 210 a,210 b, 210 c, 210 d, etc. and Multi-directional Still Picture Link 220a, 220 b, 220 c, 220 d, etc. approximation may similarly be utilizedwith Motion Pictures 410 a, 410 b, 410 c, 410 d, etc. (later described)where the Combined Picture 227 may include combined Motion Pictures 410a, 410 b, 410 c, 410 d, etc. In some aspects, streams of time stampedstill pictures (i.e. Motion Pictures 410 a, 410 b, 410 c, 410 d, etc.)may be stitched into a combined stream of time stamped still pictures.Such stitching of streams of time stamped still pictures may includestitching of still pictures having same time stamps from each stream aspreviously described in still picture stitching. The combined stream oftime stamped still pictures may therefore include a stream of combinedstill pictures depicting a panoramic view from a location of arepresented object.

Referring to FIG. 10, an embodiment is illustrated in whichMulti-directional Still Picture 200 may include one or moreMulti-directional Still Picture Distances 240. While Multi-directionalStill Picture Distances 240 may be referred to or illustrated asMulti-directional Still Picture Distances 240 a-d, one of ordinary skillin art will understand that they may indeed include any number ofMulti-directional Still Picture Distances 240 a-n. In some embodiments,Multi-directional Still Picture 200 may include functions and algorithmsfor storing a data structure whose data fields may include one or moreMulti-directional Still Picture Distances 240. In one example, aMulti-directional Still Picture 200 may include a data structurecomprising seventeen data fields: (1) Forward Still Picture 210 a, (2)Backward Still Picture 210 b, (3) Right Still Picture 210 c, (4) LeftStill Picture 210 d, (5) Forward Multi-directional Still Picture Link2208. (6) Backward Multi-directional Still Picture Link 220 b, (7) RightMulti-directional Still Picture Link 220 c, (8) Left Multi-directionalStill Picture Link 220 d, (9) Forward Multi-directional Still PictureAngle 230 a, (10) Backward Multi-directional Still Picture Angle 230 b,(11) Right Multi-directional Still Picture Angle 230 c, (12) LeftMulti-directional Still Picture Angle 230 d, (13) ForwardMulti-directional Still Picture Distance 240 a, (14) BackwardMulti-directional Still Picture Distance 240 b, (15) RightMulti-directional Still Picture Distance 240 c, (16) LeftMulti-directional Still Picture Distance 240 d, and/or (17) Orientation205. Multi-directional Still Picture Distance 240 a, 240 b, 240 c, 240d, etc. may be utilized to indicate a distance between the currentMulti-directional Still Picture 200 and a Multi-directional StillPicture 200 referenced or pointed to by a specific Multi-directionalStill Picture Link 220 a, 220 b, 220 c, 220 d, etc. As such,Multi-directional Still Picture Distances 240 a, 240 b, 240 c, 240 d,etc. may be utilized in representations of objects whereMulti-directional Still Pictures 200 may be arranged at unequaldistances. In one example, some of park's walkways may be long and fewerMulti-directional Still Pictures 200 may be used to cover the distance.Multi-directional Still Pictures 200 including Multi-directional StillPicture Distances 240 a, 240 b, 240 c, 240 d, etc. may capture thisphysical feature of the represented object (i.e. park in this example).In another example, a user may want to obtain a graphical representation(i.e. a printout, map, etc.) of the represented object including acollection of Multi-directional Still Pictures 200. The graphicalrepresentation of the collection of Multi-directional Still Pictures 200may be accurately displayed by using Multi-directional Still PictureDistances 240 a, 240 b, 240 c, 240 d, etc. Any Multi-directional StillPicture Distance may be used such as, for example, 1 meter, 2 meters, 3meters, 4 meters, 5 meters, 6 meters, 7 meters, 9 meters, 10 meters, 11meters, 15 meters, 23 meters, 25 meters, 28 meters, 30 meters, 35meters, 45 meters, 47 meters, 60 meters, 66 meters, 75 meters, 88meters, 90 meters, 100 meters, 1000 meters, 10000 meters, 100000 meters,and others. In addition to meters, units of measurement forMulti-directional Still Picture Distances 240 a, 240 b, 240 c, 240 d,etc. may include millimeters, centimeters, decimeters, kilometers,inches, feet, yards, any fractions thereof, or any other units of lengthmeasurement. All described features and embodiments of Multi-directionalStill Picture Distances 240 a, 240 b, 240 c, 240 d, etc. may similarlybe utilized with Multi-directional Motion Pictures 400 (later described)where they may be referred to as Multi-directional Motion PictureDistances.

In some embodiments, Multi-directional Pictures Repository 115 may belocal (i.e. local Multi-directional Pictures Repository 115) and it mayreside and/or execute on the user's Computing Device 70 as previouslydescribed. Such local Multi-directional Pictures Repository 115 may bestored in a local file, DBMS, database, system, process, data structure,and/or any other local data repository.

Referring to FIG. 11, an embodiment is illustrated in whichMulti-directional Pictures Repository 115 (i.e. remote Multi-directionalPictures Repository 115) may reside and/or execute on a Remote ComputingDevice 1310 (i.e. application server, cloud, etc.) accessible over aNetwork 1300 (i.e. corporate enterprise network, Internet, etc.). Suchremote Multi-directional Pictures Repository 115 may be stored in aremote file, DBMS, database, system, process, data structure, and/or anyother remote data repository. In some embodiments, a Multi-directionalPictures Repository 115 may be or include a global Multi-directionalPictures Repository 115 that may reside and/or execute on a RemoteComputing Device 1310 accessible over the Internet as a network serviceto all the world's users who wish to utilize the globalMulti-directional Pictures Repository 115 to experience visual contentincluded within it. In other embodiments, an instance of MDP Unit 100running on a user's Computing Device 70 may be in a peer-to-peer networkor relationship with an instance of MDP Unit 100 running on anotheruser's Computing Device 70. Such peer-to-peer network or relationshipmay enable both users to share with the other user Multi-directionalPictures Repositories 115 stored on their respective Computing Devices70. In yet other embodiments, a Multi-directional Pictures Repository115 may be one of plurality Multi-directional Pictures Repositories 115that may have been created by administrators or users of a networkservice for sharing Multi-directional Pictures Repositories 115. SuchMulti-directional Pictures Repositories 115 may reside in a centralrepository (i.e. file, DBMS, database, system, process, data structure,and/or any other data repository, etc.) accessible to users of thenetwork service. In one example, a user may post into the centralrepository a Multi-directional Pictures Repository 115 representing apark near his/her workplace, another user may post a Multi-directionalPictures Repository 115 representing his/her home, and yet another usermay post a Multi-directional Pictures Repository 115 representing hiscollege campus. Such central repository may be a growing repository ofuser contributed Multi-directional Pictures Repositories 115 eachincluding Multi-directional Still Pictures 200, Multi-directional MotionPictures 400, and/or other elements representing a user selected object.

Referring to FIG. 12, an embodiment is illustrated in which Core Program110 and Multi-directional Pictures Repository 115 (i.e. remoteMulti-directional Pictures Repository 115) may both reside and/orexecute on a Remote Computing Device 1310 (i.e. application server,cloud, etc.) accessible over a Network 1300 (i.e. corporate enterprisenetwork, Internet, etc.). An example of such embodiment may be theapplication service provider (ASP) model where computer-based servicesmay be provided to users over a network (i.e. Network 1300, etc.) andwhere an application program such as the Core Program 110 and/or datasuch as the Multi-directional Pictures Repository 115 may reside and/orexecute on a remote computing device such as an application server. Insome aspects, user may utilize a User Program 185 such as a web browseron the Computing Device 70 to interact with the application server i.e.Remote Computing Device 1310, etc.).

Referring to FIG. 13, an embodiment is illustrated in which Core Program110 may include Multi-directional Pictures Repository 115. In thisintegrated implementation, Core Program 110 may include hardcoded stillor motion pictures or references thereto, any data structures (i.e.multi-directional still or motion pictures, mazes, sequences, etc.)and/or other elements in which case the use of Multi-directionalPictures Repository 115 as a distinct element may optionally be omitted.

Referring to FIG. 14, an embodiment is illustrated in whichMulti-directional Pictures Repository 115 may include Core Program 110.In this integrated implementation, Multi-directional Pictures Repository115 may include hardcoded Core Program 110. In some aspects,Multi-directional Pictures Repository 115 may include a data structurewhose data field may include Core Program 110. In this integratedimplementation, Core Program 110 may initiate or execute whenMulti-directional Pictures Repository 115 is executed or opened such as,for example, when a user double-clicks to open a Multi-directionalPictures Repository 115 file including a representation of a particularobject.

Referring to FIG. 15, in some aspects, the teaching presented by thedisclosure may be implemented to include speech recognition for voiceinput. User may use a Computing Device 70 that may include Core Program110, Multi-directional Pictures Repository 115, input Interface 140,Keyboard 150, Output Interface 160, Display 170, Memory 180, PhysicalStorage Medium 181, Speech Recognizer 2700, and/or Microphone 2710.Other additional elements may be included as needed, or some of thedisclosed ones may be excluded, or a combination thereof may be utilizedin alternate embodiments.

Speech Recognizer 2700 may comprise any hardware, software or acombination of hardware and software. Speech Recognizer 2700 may includefunctions and algorithms for processing input events of Microphone 2710for use by Core Program 110 and/or other elements of the disclosedmethods, systems and apparatuses. Speech Recognizer 2700 may includefunctions and algorithms for “listening” to voice events on Microphone2710, interpreting the voice events as User's voice commands, and/ortransmitting the voice commands for use by Core Program 110. SpeechRecognizer 2700 may fall under the general description of the previouslydescribed input Interface 140, and while it includes all theaforementioned embodiments, it is described separately in thisembodiment to offer additional detail on its functioning. SpeechRecognizer 2700 may be implemented by utilizing (1) a Computing Device70 operating system's speech recognition functionality such as iOS'sVoice Services, Siri, etc. which may come inherently as the part of thecomputing device or mobile device package; (2) a Java Speech API (JSAPI)or any of its implementations such as The Cloud Garden, Sphinx, etc.;and/or (3) applications or engines providing speech recognitionfunctionality such as OpenEars, Dragon Mobile, iSpeech, CeedVocal,Elite, Julius, etc. In some aspects, a lexicon of voice commands (i.e.words, phrases, etc.) may be utilized in which each voice command may beassociated with the previously described input means such as PictureArrow 860 a, 860 b, 860 c, 860 d, etc., Direction Arrow 850 a, 850 b,850 c, 850 d, etc., Orientation Pointer 870, and/or other input means tofacilitate the input of operating instructions through voice input. Inone example, a phrase “go forward” may be a voice command in the lexiconand it may be associated with a Forward Multi-directional Still PictureLink 220 a or Forward Multi-directional Motion Picture Link 420 a. Inanother example, a phrase “look right” may be a voice command in thelexicon and it may be associated with a Right Still Picture 210 c orRight Motion Picture 410 c. In some embodiments, MDP Unit 100 includingSpeech Recognizer 2700 may enable a user to utilize the functionalitiesdescribed herein by issuing voice commands (i.e. words, phrases, etc.)combined with utilizing the previously described input means such asPicture Arrows 860 a, 860 b, 860 c, 860 d, etc., Direction Arrows 850 a,850 b, 850 c, 850 d, etc., Orientation Pointer 870, and/or other inputmeans. In other embodiments, MDP Unit 100 with Speech Recognizer 2700may enable a user to utilize the functionalities described herein byissuing voice commands only, which voice commands may select or activatethe previously described input means such as Picture Arrows 860 a, 860b, 860 c, 860 d, etc., Direction Arrows 850 a, 850 b, 850 c, 850 d,etc., Orientation Pointer 870, and/or other input means.

Microphone 2710 may comprise any hardware, software or a combination ofhardware and software. Microphone 2710 may include functions andalgorithms for receiving and/or detecting User's voice events or inputs.Most modern computing and mobile devices include Microphone 2710 as oneof the input devices.

In some embodiments, MDP Unit 100 may use the Computing Device 70operating system's speech recognition functionality as the SpeechRecognizer 2700. Core Program 110 may use the operating system's nativespeech recognition API such as the iOS Voice Services to obtain user'svoice commands. In one example, Microphone 2710 may detect user's voiceevent; the iOS Voice Services may interpret the voice event as user'svoice command and make the voice event available as data (i.e. text,instruction, instruction set, command, object, data structure, etc.) toCore Program 110; and the Core Program 110 may use the data forselecting or activating a specific input means such as Picture Arrow 860a, 860 b, 860 c, 860 d, etc., Direction Arrow 850 a, 850 b, 850 c, 850d, etc., Orientation Pointer 870, and/or other input means.

In other embodiments, MDP Unit 100 may use a Java Speech API (JSAPI)implementation as the Speech Recognizer 2700. Core Program 110 may use aJSAPI implementation such as The Cloud Garden to obtain user's voicecommands. In one example, Microphone 2710 may detect user's voice event;the Cloud Garden JSAPI may interpret the voice event as user's voicecommand and make the voice event available as data (i.e. text,instruction, instruction set, command, object, data structure, etc.) toCore Program 110; and the Core Program 110 may use the data forselecting or activating a specific input means such as Picture Arrow 860a, 860 b, 860 c, 860 d, etc., Direction Arrow 850 a, 850 b, 850 c, 850d, etc., Orientation Pointer 870, and/or other input means.

In yet other embodiments, MDP Unit 100 may use applications or enginesproviding speech recognition functionality as the Speech Recognizer2700. Core Program 110 may use an application or engine such as theOpenEars Software Development Kit (SDK) to obtain user's voice commands.In one example, Microphone 2710 may detect user's voice event; theOpenEars SDK may interpret the voice event as user's voice command andmake the voice event available as data (i.e. text, instruction,instruction set, command, object, data structure, etc.) to Core Program110; and the Core Program 110 may use the data for selecting oractivating a specific input means such as Picture Arrow 860 a, 860 b,860 c, 860 d, etc., Direction Arrow 850 a, 850 b, 850 c, 850 d, etc.,Orientation Pointer 870, and/or other input means.

Depending on resource availability Speech Recognizer 2700 may beimplemented as keyword spotting or as full speech recognition. Keywordspotting may attempt to find only a select group of words and/orphrases, and because of this limited lexicon it consumes fewerresources. In the case of keyword spotting implementation, words orphrases such as “forward”, “go forward”, “backward”, “go backward”,“right”, “go right”, “left”, “go left”, “forward picture”, “lookforward”, “backward picture”, “look backward”, “right picture”, “lookright”, “left picture”, “look left”, “north orientation”, “southorientation”, “east orientation”, “west orientation”, “forwardorientation”, “backward orientation”, “right orientation”, “leftorientation” and/or other words or phrases may define the select groupof words and/or phrases to be searched. Full speech recognition mayattempt to find all words and/or phrases that have been spoken, andbecause of this broader lexicon it consumes significant resources. Inthe case of full speech recognition implementation, the broadness ofwords and/or phrases would by definition include all words or phrasesneeded for MDP Unit 100. In some embodiments, both keyword spotting andfull speech recognition implementations may include a file or databaseof words and/or phrases located locally on the Computing Device 70 orremotely on a Remote Computing Device 1310 accessible over a Network1300.

Referring to FIG. 16, the illustration shows an embodiment of MDP Unit100 implemented to include multi-user functionality (also referred to asmulti-user MDP Unit 100 or MDP application). Multi-user MDP Unit 100 mayenable multiple users to see and/or interact with each other within aMDP application. In some aspects, each user of a multi-user MDPapplication may be represented and/or shown by his/her Avatar 845. Auser may see other users' Avatars 845 through Display Window 840 as theuser moves among Multi-directional Still Pictures 200 and views StillPictures 220 a, 220 b, 220 c, 220 d, etc. In some embodiments, aninstance of multi-user MDP Unit 100 may execute or run on a RemoteComputing Device 1310 (i.e. application server, cloud, etc.) to whichusers may connect over a Network 1300 (i.e. corporate enterprisenetwork, Internet, etc.). Users may be remote from each other (i.e. indifferent buildings, in different cities, in different parts of theworld, etc.) and may use their Computing Devices' 70 networkingfunctionalities to connect to a Remote Computing Device 1310 (i.e.application server, cloud, etc.) running an instance of multi-user MDPUnit 100. As such, multi-user MDP Unit 100 may be implemented as anetwork service for all the world's users who wish to experience seeingand/or interacting with each other in a MDP application. In someaspects, multi-user functionality may be implemented to create or definea virtual world where users may see and/or interact with each other.Users may be offered a variety of types or forms of Avatars 845 fromwhich to choose. For example, a female user may prefer a female-lookingAvatar 845 wearing a long skirt whereas a male user may prefer amuscular-looking Avatar 845 wearing a t-shirt. Each Avatar 845 may beassociated with a Multi-directional Still Picture 200 of the Avatar's845 user's location within a multi-user MDP application. Association ofa user's Avatar 845 and a Multi-directional Still Picture 200 mayinclude Avatar's 845 identifier and Multi-directional Still Picture's200 identifier, Associations of users' Avatars 845 and Multi-directionalStill Pictures 200 may be tracked and/or stored in Multi-directionalPictures Repository 115, and/or any file, object, data structure, DBMS,database, system, process, or other repository. Once associated with aMulti-directional Still Picture 200 of the user's location in arepresented object, an Avatar 845 may be shown at that location. In someembodiments, showing an Avatar 845 may include inserting Avatar's 845picture into one or more Still Pictures 210 a, 210 b, 210 c, 210 d, etc.of one or more Multi-directional Still Pictures 200. As a user movesfrom one Multi-directional Still Picture 200 to another, his/herAvatar's 845 picture may be deleted from Still Pictures 210 a, 210 b,210 c, 210 d, etc. where it was previously inserted and his/her Avatar's845 picture may be inserted into new Still Pictures 210 a, 210 b, 210 c,210 d, etc. to correspond to user's new location. In other embodiments,showing an Avatar 845 may include superimposing or overlying Avatar's845 picture onto one or more Still Pictures 210 a, 210 b, 210 c, 210 d,etc. of one or more Multi-directional Still Pictures 200. In someaspects, superimposing or overlying an Avatar's 845 picture onto one ormore Still Pictures 210 a, 210 b, 210 c, 210 d, etc. of one or moreMulti-directional Still Pictures 200 may include a layer (i.e. digitalpicture layer, etc.) comprising the Avatar's 845 picture. As a usermoves from one Multi-directional Still Picture 200 to another, his/herAvatar's 845 picture may be removed from Still Pictures 210 a, 210 b,210 c, 210 d, etc. where it was previously superimposed and his/herAvatar's 845 picture may be superimposed onto new Still Pictures 210 a,210 b, 210 c, 210 d, etc. to correspond to user's location. In yet otherembodiments, an Avatar's 845 picture may be dynamically (i.e. as needed,etc.) inserted into or superimposed onto one or more Still Pictures 210a, 210 b, 210 c, 210 d, etc. of one or more Multi-directional StillPictures 200 if Avatar 845 is located within another user's field ofview or line of sight. Avatar's 845 picture may include any digitalpicture, any animated picture (i.e. animated GIF picture, etc.), anycomputer generated object (i.e. 3D object, etc.), any vector graphics,any video, and/or any other representation of a user's Avatar 845.Avatar's 845 picture may be animated to display various behaviors and/oremotions such as, for example, laughing, crying, jumping, pointingfinger, walking back and forth in a specific location, and/or any otherbehaviors and/or emotions. A user may turn his/her Avatar 845 in variousdirections in a specific location (i.e. Multi-directional Still Picture200) of a represented object. In some aspects, an Avatar 845 (i.e.avatar's face and frontal side) may be turned in the direction ofhis/her user's view or selection of Still Picture 210 a, 210 b, 210 c,210 d, etc. For example, if Avatar's 845 user is viewing a Forward StillPicture 210 a including a view of a building, the Avatar's 845 face andfrontal side may be directed toward the building. As such, pictures ofvariously directed versions of the same Avatar 845 may be maintained andinserted into or superimposed onto Still Pictures 210 a, 210 b, 210 c,210 d, etc. based on Avatar's 845 user's direction of view. In someembodiments, Avatar's 845 direction may be associated with Orientation205. In other embodiments, Avatar's 845 direction may be unassociatedwith user's direction of view and/or Orientation 205 in which case usermay control his/her Avatar's 845 direction by utilizing input means onthe Computing Device 70 such as arrows or other directional signsindicating Avatar's 845 direction. A user may move his/her Avatar 845into various locations by moving among Multi-directional Still Pictures200 (i.e. locations of a represented object). Generally, Avatar's 845location may correspond to Avatar's 845 user's location (i.e.Multi-directional Still Picture 200 representing the location) in arepresented object and Avatar's 845 movement may correspond to Avatar's845 user's movement among Multi-directional Still Pictures 200. However,in some embodiments, Avatar's 845 movement may be unassociated withhis/her user's movement among Multi-directional Still Pictures 200 inwhich case user may control his/her Avatar's 845 movement by utilizinginput means on the Computing Device 70 such as arrows or otherdirectional signs indicating Avatar's 845 movement.

In some embodiments, multi-user MDP Unit 100 may enable a user toexperience first-person perspective or view. First-person perspectivemay show other users' Avatars 845, but may not typically show user's ownAvatar 845. In some implementations of first-person perspective, usermay be able to see his/her Avatar's 845 hands, feet, other body parts,and/or objects that Avatar 845 may be holding. In other embodiments,multi-user MDP Unit 100 may enable a user to experience third-personperspective where user may see his/her own Avatar 845 as well as otherusers' Avatars 845. In some aspects, third-person perspective may beachieved by inserting or superimposing user's own Avatar's 845 pictureinto/onto a Still Picture 210 a, 210 b, 210 c, 210 d, etc. of aMulti-directional Still Picture 200 representing user's location in acollection of Multi-directional Still Pictures 200. In other aspects,third-person perspective may be achieved by inserting or superimposinguser's own Avatar's 845 picture into/onto a Still Picture 210 a, 210 b,210 c, 210 d, etc. of a nearby Multi-directional Still Picture 200 anddisplaying the Still Picture 210 a, 210 b, 210 c, 210 d, etc. of thenearby Multi-directional Still Picture 200 comprising Avatar's 845picture. In some embodiments, positional audio may be implemented whereambient sounds may vary depending on Avatar's 845 location in arepresented object. In other embodiments, audio conversation amongproximal Avatars 845 may be implemented via their user's networkinterconnected Computing Devices 70 and their respective sound input andoutput devices (i.e. microphones, speakers, etc.) and interfaces (i.e.Input Interfaces 140, Output Interfaces 160, etc.). In one example, auser may view a Forward Still Picture 210 a including a view of a park'swalkway facing a nearby building where another user's Avatar 845 maystand as shown in Step 1 of FIG. 16. Picture Display 840 may showForward Still Picture 210 a including inserted or superimposed pictureof the other user's Avatar 845. User may select or activate ForwardDirection Arrow 850 a and move from current to a next Multi-directionalStill Picture 200, which may bring user to a next location on park'swalkway such as location depicted in Step 2 of FIG. 16. Such movementmay bring user and/or his/her Avatar 845 closer to the other user'sAvatar 845. User may then interact with the other user and/or his/herAvatar 845 including communication (i.e. verbal communication, signscommunication, body language, gestures, etc.), physical contact of thetwo Avatars 845 (i.e. shaking hands, dancing, fighting, etc.), and/orany other type or form of interaction. As such, multi-user MDP Unit 100may enable a user to view all views (i.e. forward, backward, right, leftup, down, diagonal, angular, etc.) from all locations (i.e.Multi-directional Still Pictures 200) of a represented object (i.e. parkin this example) as well as to simulate user's motion through therepresented object (i.e. park in this example) including seeing and/orinteracting with other users' Avatars 845. In some embodiments, eachAvatar's 845 location and/or identification (i.e. name of user or user'savatar, etc.) may be shown on Map 820. This functionality may enable auser to instantly visit a Multi-directional Still Picture 200 (i.e.location of a represented object) associated with another user's Avatar845 by clicking on Map's 820 spot indicating the other user's Avatar845.

In some embodiments, movement, appearance, behavior, and/or otherfeatures and/or aspects of an Avatar 845 may be controlled by a programor algorithm. Such program or algorithm may include a collection ofreferences to Multi-directional Still Pictures 200 defining a path ofmovement of Avatar 845. Such program or algorithm may include Avatar's845 picture defining appearance of Avatar 845. Such program or algorithmmay include a set of instructions defining Avatar's 845 behaviors and/oremotions such as, for example, behaviors and/or emotions in proximity toother Avatars 845 or objects. Such program or algorithm may includefunctionality to control or define any other features or aspects ofAvatar 845. In one example, Avatar 845 may be programmed to circle abuilding in a college campus (i.e. represented object) at night. Theprogram or algorithm controlling Avatar 845 may include a collection ofreferences to Multi-directional Still Pictures 200 representinglocations around the building. The program or algorithm controllingAvatar 845 may include a picture of a security guard as Avatar's 845picture. The program or algorithm controlling Avatar 845 may include aset of instructions that may cause Avatar 845 to display certainbehaviors or emotions in specific situations. Using the collection ofreferences to Multi-directional Still Pictures 200, Avatar 845 may moveamong the referenced Multi-directional Still Pictures 200. A period oftime may be defined to be spent by Avatar 845 in each Multi-directionalStill Picture 200 before moving to a next Multi-directional StillPicture 200 in the collection. Users of a multi-user MDP Unit 100 maysee the security guard picture of Avatar 845 and interact with theAvatar 845. If a user-controlled Avatar 845 approaches the “guarded”building, the program or algorithm may cause the program-controlledAvatar 845 to position itself in front of the incoming user's Avatar 845and issue audible warning (i.e. “access to this building is restrictedat night”, etc.) for example. Any other movements, appearances,behaviors, and/or other features and/or aspects of an Avatar 845 maysimilarly be implemented by a program or algorithm. In some embodiments,program-controlled Avatars 845 may interact with each other and/orobjects in a MDP application as if they were user-controlled Avatars845. Such functionality may enable implementation of an evolving virtualworld with various and/or unforeseen scenarios based onprogram-controlled Avatars' 845 interactions. Human users may enter andexperience this evolving virtual world and interact withprogram-controlled Avatars 845 as previously described.

Referring to FIG. 17, the illustration shows an embodiment of multi-userMDP Unit 100 implemented to show Avatar 845. In one example, a ForwardStill Picture 210 a may include a view from a location of a representedobject. Another user's Avatar 845 may be within field of view or line ofsight, and the Avatar's 845 picture may be shown in the Forward StillPicture 210 a. In some embodiments, Avatars 845 picture may be insertedinto Forward Still Picture 2103 by replacing pixels of the Forward StillPicture 210 a with Avatar's 845 picture's pixels through pictureprocessing. Additional picture processing may also be performed onForward Still Picture 210 a such as, for example, adding a shadow bydarkening pixels near Avatar's 845 picture, smoothing pixels around theedges of Avatar's 845 picture for a finer blending into the backgroundof Forward Still Picture 210 a, and/or any other picture processing toenhance appearance of Avatar 845. In other embodiments, Avatar's 845picture may be superimposed or overlayed onto Forward Still Picture 210a. In some aspects, superimposing or overlying Avatar's 845 picture ontoForward Still Picture 210 a may include creating or defining a new layer(i.e. digital picture layer, etc.) comprising Avatar's 845 picture'spixels for Avatar's appearance and/or transparent pixels for thebackground (i.e. Forward Still Picture 210 a, etc.). Examples of typesof digital pictures including layer and/or transparency functionalitiesinclude Portable Document Format (PDF), Graphics Interchange Format(GIF), Photoshop Document (PSD), and/or other types or formats ofdigital pictures. In yet other embodiments, Avatar's 845 picture may beinserted into or superimposed onto a copy (i.e. copy in memory,temporary copy, etc.) of Forward Still Picture 210 a without alteringthe original Forward Still Picture 210 a.

In some embodiments, picture processing may be implemented on aComputing Device 70 to find Still Pictures 210 a, 210 b, 210 c, 210 d,etc. that may be within a line of sight from an Avatar's 845 location.Avatars 845 picture may then be inserted into or superimposed onto thefound Still Pictures 210 a, 210 b, 210 c, 210 d, etc. for users of amulti-user MDP Unit 100 to see the Avatar 845 from various locationsand/or distances within a line of sight. Finding Still Pictures 210 a,210 b, 210 c, 210 d, etc. that may be within a line of sight from anAvatar's 845 location may include identifying a Region 846 around aposition where Avatar's 845 picture may be inserted into or superimposedonto a Still Picture 210 a, 210 b, 210 c, 210 d, etc. In some aspects,finding Still Pictures 210 a, 210 b, 210 c, 210 d, etc. that may bewithin a line of sight from an Avatar's 845 location may includeidentifying a Region 846 around a position where Avatar's 845 picturemay be inserted into or superimposed onto a Still Picture 210 a, 210 b,210 c, 210 d, etc. of a Multi-directional Still Picture 200 associatedwith Avatar 845 (i.e. Avatar's 845 location). Region 846 may include anyportion, subset, or area of the Still Picture 210 a, 210 b, 210 c, 210d, etc. from which it originates. Region 846 may be of any shape or sizesuch as, for example, a Region 846 shaped as Avatar's 845 picture, aRegion 846 larger or smaller than Avatar's 845 picture, a Region 846partially shaped as Avatar's 845 picture, a rectangular Region 846around Avatar's 845 picture, a round Region 846 around Avatar's 845picture, an odd-shaped Region 846 around Avatar's 845 picture, and/orany other Region 846 around a position where Avatar's 845 picture may beinserted or superimposed. Finding Still Pictures 210 a, 210 b, 210 c,210 d, etc. that may be within a line of sight from an Avatar's 845location may include comparing the identified Region 846 with anotherStill Picture 210 a, 210 b, 210 c, 210 d, etc. (i.e. comparativepicture) to determine if the Still Picture 210 a, 210 b, 210 c, 210 d,etc. (i.e. comparative picture) may include all or a portion of Region846. Finding a Still Picture 210 a, 210 b, 210 c, 210 d, etc. (i.e.comparative picture) that may include all or a portion of Region 846 mayindicate that the Still Picture 210 a, 210 b, 210 c, 210 d, etc. (i.e.comparative picture) may belong to a same line of sight as a StillPicture 210 a, 210 b, 210 c, 210 d, etc. from which the identifiedRegion 846 originates. This indication may be derived from a premisethat if one digital picture (i.e. comparative picture, etc.) may includeall or a portion of a region of another digital picture, the two digitalpictures may be portraying the same line of sight. In some aspects,comparing digital pictures to determine if one may include all or aportion of a region (i.e. Region 846) of another picture may beperformed by determining if a region of pixels of one picture (i.e.comparative picture) may match a region (i.e. Region 846) of pixels ofanother picture. The threshold for similarity in each of the pixelsrequired for a match may be adjustable by a user or automaticallyadjustable as needed. Such threshold may include exact match such as100% match, nearly exact match such as 90% or 80% match, mostly matchsuch as 70% or 60%, half match such as 50%, low match such as 40% or 30%match, or any other match. The threshold for the number of pixelsrequired for a match may similarly be adjustable. In other aspects,comparing digital pictures to determine if one may include all or aportion of a region (i.e. Region 846) of another picture may beperformed by determining if a region of pixels of one picture (i.e.comparative picture) may match a resized (i.e. downsized, upsized, etc.)region (i.e. Region 846) of pixels of another picture. Any of thepublically available or other digital picture resizing algorithms ortechniques may be used. Resizing of Region 846 may be performedincrementally (i.e. resizing by one pixel at a time in length or widthkeeping aspect ratio constant, etc.) to reduce or increase the size(i.e. number of pixels, etc.) of Region 846. Each incrementally resizedRegion 846 or a copy thereof may then be compared with all regions of acomparative picture. A comparative picture whose region may be found tomatch Region 846 may be a Still Picture 210 a, 210 b, 210 c, 210 d, etc.within a same line of sight as a Still Picture 210 a, 210 b, 210 c, 210d, etc. from which Region 846 originates. If a match is not foundbetween any regions of a comparative picture and any of theincrementally resized Regions 846 or copies thereof, the comparison maybe performed between regions of other Still Pictures 210 a, 210 b, 210c, 210 d, etc. (i.e. comparative pictures) in a MDP application andresized Regions 846 or copies thereof. As such, regions of all StillPictures 210 a, 210 b, 210 c, 210 d, etc. in a MDP application may becompared with resized Regions 846 or copies thereof to find all StillPictures 210 a, 210 b, 210 c, 210 d, etc. that may include all or aportion of Region 846. Avatar's 845 picture may then be inserted into orsuperimposed onto these Still Pictures 210 a, 210 b, 210 c, 210 d, etc.In some aspects, inserting or superimposing Avatar's 845 pictureinto/onto Still Pictures 210 a, 210 b, 210 c, 210 d, etc. found to bewithin a line of sight may include inserting or superimposing Avatar's845 picture in position where a resized Region 846 is found in each ofthe Still Pictures 210 a, 210 b, 210 c, 210 d, etc. In other aspects,Avatar's 845 picture or a copy thereof may be resized and then insertedinto or superimposed onto Still Pictures 210 a, 210 b, 210 c, 210 d,etc. to show a view of the Avatar 845 in perspective as later described.

In one example, Avatar 845 may be associated with a Multi-directionalStill Picture 200 on a park's walkway near a building as shown in FIG.17. Avatar's 845 picture may be inserted into or superimposed ontoForward Still Picture 210 a of the Multi-directional Still Picture 200associated with the Avatar 845. This way, Avatar's 845 picture may beshown to users of a multi-user MDP application at Avatar's 845 location.Picture processing may be implemented on a Computing Device 70 to findStill Pictures 210 a, 210 b, 210 c, 210 d, etc. that may be within aline of sight from Avatar's 845 location (i.e. Multi-directional StillPicture 200 associated with Avatar 845). Region 846 may be identifiedaround the position where Avatar's 845 picture may be inserted into orsuperimposed onto Forward Still Picture 210 a. Such Region 846 mayinclude a selection of pixels such as, for example, a rectangularselection of pixels that may be larger than the Avatar's 845 picture.Still Pictures 210 a, 210 b, 210 c, 210 d, etc. that may be within aline of sight from Avatar's 845 location may then be detected by findingStill Pictures 210 a, 210 b, 210 c, 210 d, etc. of any Multi-directionalStill Pictures 200 that may include all or a portion of the identifiedRegion 846. A first Still Picture 210 a, 210 b, 210 c, 210 d, etc. (i.e.comparative picture) may be compared with Region 846 to determine if aregion of pixels of the first Still Picture 210 a, 210 b, 210 c, 210 d,etc. (i.e. comparative picture) may match all or a portion of pixels ofRegion 846. Such comparison may include incrementally downsizing Region846 by one pixel at a time in length or width keeping aspect ratioconstant (i.e. reducing the size from 40×120 pixels to 39×117 pixels,etc.) and comparing the downsized Region 846 with all regions of thefirst Still Picture 210 a, 210 b, 210 c, 210 d, etc. to find a region ofthe first Still Picture 210 a, 210 b, 210 c, 210 d, etc. that may matchall or a portion of pixels of the downsized Region 846. The downsizedRegion 846 may first be compared with a same sized (i.e. 39×117 pixelsin this example, etc.) initial region of the first Still Picture 210 a,210 b, 210 c, 210 d, etc. starting at pixel [1,1]. If a match is notfound, the downsized Region 846 may then be compared with a same sized(i.e. 39×117 pixels in this example, etc.) region of the first StillPicture 210 a, 210 b, 210 c, 210 d, etc. starting at pixel [2,1]. If amatch is still not found, the downsized Region 846 may then be comparedwith same sized (i.e. 39×117 pixels in this example, etc.) regions ofthe first Still Picture 210 a, 210 b, 210 c, 210 d, etc. each startingat remaining pixels in y line 1 (i.e. [3,1], [4,1], [5,1], . . . ). If amatch is still not found, the downsized Region 846 may then be comparedwith same sized (i.e. 39×117 pixels in this example, etc.) regions ofthe first Still Picture 210 a, 210 b, 210 c, 210 d, etc. each startingat remaining pixels in y lines 2 (i.e. [1,2], [2,2], [3,2], . . . ), 3,4, and so on until the last pixel of the first Still Picture 210 a, 210b, 210 c, 210 d, etc. (pixel coordinates in a digital picture and anexample of a searching pattern are later described in more detail). Thecomparison may include any initial region of the first Still Picture 210a, 210 b, 210 c, 210 d, etc. such as, for example, region in the middleof first Still Picture 210 a, 210 b, 210 c, 210 d, etc., region at theend of first Still Picture 210 a, 210 b, 210 c, 210 d, etc., region atright of first Still Picture 210 a, 210 b, 210 c, 210 d, etc., region atleft of first Still Picture 210 a, 210 b, 210 c, 210 d, etc., and/or anyother initial region. Also, the comparison may include any searchpattern for regions of the first Still Picture 210 a, 210 b, 210 c, 210d, etc. such as, for example, linear searching in any direction, outwardsearching from a middle region, forward searching from a region in thebeginning, backward searching from a region at the end, and/or any othersearch pattern. If a match is not found between any region of the firstStill Picture 210 a, 210 b, 210 c, 210 d, etc. and the downsized Region846, Region 846 may be downsized to a next smaller size. All regions ofthe first Still Picture 210 a, 210 b, 210 c, 210 d, etc. may then becompared with the new downsized Region 846 to find a region of the firstStill Picture 210 a, 210 b, 210 c, 210 d, etc. that may match all or aportion of the new downsized Region 846. Incrementally downsizing Region846 and comparing regions of the first Still Picture 210 a, 210 b, 210c, 210 d, etc. with downsized Regions 846 may be repeated until a matchis found. If any region of the first Still Picture 210 a, 210 b, 210 c,210 d, etc. is found to match all or a portion of any downsized Region846, the first Still Picture 210 a, 210 b, 210 c, 210 d, etc. may bewithin a same line of sight as a Still Picture 210 a, 210 b, 210 c, 210d, etc. from which Region 846 originates. Any of the described steps forcomparing regions of the first Still Picture 210 a, 210 b, 210 c, 210 d,etc. with downsized Regions 846 may be performed with all Still Pictures210 a, 210 b, 210 c, 210 d, etc. in a MDP application to find StillPictures 210 a, 210 b, 210 c, 210 d, etc. within a same line of sight asStill Picture 210 a, 210 b, 210 c, 210 d, etc. from which Region 846originates. Avatar's 845 picture may then be inserted into orsuperimposed onto these Still Pictures 210 a, 210 b, 210 c, 210 d, etc.in position where Region 846 is found in each of the Still Pictures 210a, 210 b, 210 c, 210 d, etc. This way, users of a multi-user MDPapplication may see Avatar 845 from various locations and/or distanceswithin a line of sight. In some aspects, Avatar's 845 picture may beshown in perspective (i.e. larger as the distance from the observerdecreases and smaller as the distance from the observer increases).Showing Avatar's 845 picture in perspective may include inserting orsuperimposing increased size Avatar's 845 picture into/onto StillPictures 210 a, 2′10b, 210 c, 210 d, etc. as user approaches the Avatar845 or decreased size Avatar's 845 picture as user retreats from theAvatar 845. In some embodiments, a line of sight may be identified assame direction Still Pictures 210 a, 210 b, 210 c, 210 d, etc. of anyMulti-directional Still Pictures 200 positioned in a straight line. Inone example, Forward Still Pictures 210 a of any Multi-directional StillPictures 200 on a straight walkway in a park may be within a line ofsight. In some aspects, previously described Multi-directional StillPicture Angles 230 a, 230 b, 230 c, 230 d, etc. may be utilized toidentify Multi-directional Still Pictures 200 on a straight walkway in apark. For example, Multi-directional Still Pictures 200 with a sameForward Multi-directional Still Picture Angle 230 a starting from aspecific Multi-directional Still Picture 200 may be on a straightwalkway in a park.

All described features and embodiments of multi-user MDP Unit 100 maysimilarly be utilized with Multi-directional Motion Pictures 400 (laterdescribed) where Avatar 845 may be inserted into streams of stillpictures. In some embodiments, insertion of Avatar 845 may be performedas previously described into each still picture in a stream of stillpictures (i.e. motion picture, etc.). Also, finding Motion Pictures 410a, 410 b, 410 c, 410 d, etc. that may be within a line of sight from anAvatar's 845 location may be performed as previously described whereprocessing or comparisons may be performed for each still picture in astream of still pictures (i.e. motion picture, etc.) to find a match.Therefore, additional cycles of processing or comparisons may beperformed. In some embodiments, still pictures from different streamshaving same time stamps may be processed or compared. In otherembodiments, still pictures from different streams having similar timestamps may be processed or compared in which case a threshold may bedefined by user or automatically to control how far before or after aspecific still picture (i.e. frame, etc.) a search may go to find amatching still picture or a portion thereof.

Referring to FIG. 18, the illustration shows an embodiment of a method3100 for finding Still Pictures 210 a, 210 b, 210 c, 210 d, etc. thatmay be within a line of sight from an Avatar's 845 location andinserting Avatar's 845 picture in the found Still Pictures 210 a, 210 b,210 c, 210 d, etc. The steps of this exemplary method may therefore beused to show a user's Avatar 845 in still pictures of anymulti-directional still pictures from various locations and/or distanceswithin a line of sight. One of ordinary skill in art will understandthat some or all steps of this method may be reordered, and that otheradditional steps may be included as needed, or some of the disclosedones may be excluded, or a combination thereof may be utilized inalternate embodiments. Some or all steps of this method may similarly beutilized for finding Motion Pictures 410 a, 410 b, 410 c, 410 d, etc.(later described) that may be within a line of sight from an Avatar's845 location and inserting Avatar's 845 picture in the found MotionPictures 410 a, 410 b, 410 c, 410 d, etc.

At step 3105, a collection of multi-directional still pictures eachassociated with a location of a represented object and each includingone or more differently directed still pictures and one or more links toother one or more multi-directional still pictures is maintained inmemory of a computing device. At step 3110, a user's avatar isassociated with a first multi-directional still picture and the avatar'spicture is inserted into a first still picture of the firstmulti-directional still picture. At step 3115, a region of the firststill picture of the first multi-directional still picture is identifiedaround a position where the avatar's picture is inserted. At step 3120,the identified region is incrementally resized. At step 3125, subsets ofa first still picture of a second multi-directional still picture arecompared with the incrementally resized identified region. At step 3130,steps 3120 and 3125 are repeated to compare subsets of the first stillpicture of the second multi-directional still picture with eachincrementally resized identified region. At step 3135, a determinationis made that a subset of the first still picture of the secondmulti-directional still picture is sufficiently similar to anincrementally resized identified region to indicate a line of sight. Atstep 3140, the avatar's picture is resized proportional to theincrementally resized identified region to portray the avatar inperspective. At step 3145, the resized avatar's picture is inserted intothe first still picture of the second multi-directional still picture ina position where the subset sufficiently similar to the incrementallyresized identified region is found. At step 3150, steps 3120-3145 arerepeated to compare subsets of additional still pictures of the secondand any other multi-directional still pictures with each incrementallyresized identified region and to insert resized avatar's pictures.

In some aspects, the teaching presented by the disclosure may beimplemented in a device or system for inserting an avatar into stillpictures. The device or system may include a processor and an interface,coupled to the processor, for receiving a collection ofmulti-directional still pictures each multi-directional still pictureassociated with a location of a represented object and including one ormore differently directed still pictures and one or more links to otherone or more multi-directional still pictures. The processor may beprogrammed to: associate a user's avatar with a first multi-directionalstill picture and insert the avatar's picture into a first still pictureof the first multi-directional still picture. The device or system mayfurther include a comparator, coupled to the processor, for identifyinga region of the first still picture of the first multi-directional stillpicture around a position where the avatar's picture is inserted, andincrementally resizing the identified region. The comparator may furtherbe configured to compare subsets of a first still picture of a secondmulti-directional still picture with the incrementally resizedidentified region, and determine that a subset of the first stillpicture of the second multi-directional still picture is sufficientlysimilar to an incrementally resized identified region to indicate a lineof sight. The processor may further be programmed to: resize theavatar's picture proportional to the incrementally resized identifiedregion to portray the avatar in perspective, and insert the resizedavatar's picture into the first still picture of the secondmulti-directional still picture in a position where the subsetsufficiently similar to the incrementally resized identified region isfound. The processor, the interface, the comparator, and/or otherelements of the device or system for inserting an avatar into stillpictures may include any features and functionalities of Processor 11,Core Program 110, Multi-directional Pictures Repository 115, and/orother disclosed elements. The device or system may also include anyfunctionalities or steps of any disclosed methods such as, for example,method 3100. For example, Core Program 110 may be implemented onProcessor 11 and it may read still pictures or references thereto, anydata structures (i.e. multi-directional still pictures, mazes,sequences, etc.) and/or other elements from Multi-directional PicturesRepository 115. As a user moves among multi-directional still pictures,Core Program 110 may insert or show the user's own avatar at a locationassociated with the user's current multi-directional still picture.Comparator may be implemented on Processor 11 and it may perform thedescribed picture processing to find still pictures of anymulti-directional still pictures that may be within a line of sight fromthe avatar's location. Core Program 110 may then insert or show theuser's own avatar in the found still pictures for other users to see theavatar from various locations and/or distances within a line of sightfrom the user's location. Comparator may be included in Core Program110, it may be a separate program implemented on Processor 11, it may bea hardware component or a separate processor dedicated to its assignedfunctionalities, or a combination thereof.

Referring to FIG. 19, in some aspects, the teaching presented by thedisclosure may be implemented to include methods, systems andapparatuses for creating, by or for a non-technical user, collections ofMulti-directional Still Pictures 200 representing an object. While acollection of Multi-directional Still Pictures 200 representing anobject may be created by a sophisticated computer programmer or complexspecialized equipment by following the conceptual description above.Maker 920 may enable a non-technical user (also referred to as Designer915) to create collections of Multi-directional Still Pictures 200representing an object through a guided point and click process. Asshown for example in FIG. 19, Designer 915 may operate a ComputingDevice 70 including Maker 920, Multi-directional Pictures Repository115, Input Interface 140, Keyboard 150, Output Interface 160, Display170, Memory 180, and/or Physical Storage Medium 181. Other additionalelements may be included as needed, or some of the disclosed ones may beexcluded, or a combination thereof may be utilized in alternateembodiments,

Maker 920 may comprise any software, hardware, or a combination ofsoftware and hardware. Maker 920 may include functions and algorithmsfor creating collections of Multi-directional Still Pictures 200representing an object. Maker 920 may include functions and algorithmsfor guiding a Designer 915 in creating collections of Multi-directionalStill Pictures 200 representing an object. Maker 920 may includefunctions and algorithms for guiding a Designer 915 in capturing StillPictures 210 a, 210 b, 210 c, 210 d, etc. and in generating any datastructures such as Multi-directional Still Pictures 200, Maze 300,and/or Multi-directional Picture Sequences 350, Maker 920 may alsoinclude functions and algorithms for generating and/or storing aMulti-directional Digital Pictures Repository 115, which may includeStill Pictures 210 a, 210 b, 210 c, 210 d, etc. and/or any datastructures such as Multi-directional Still Pictures 200, Maze 300,and/or Multi-directional Picture Sequences 350. Maker 920 may be,directly or operatively, connected to Input Interface 140, OutputInterface 160, Multi-directional Digital Pictures Repository 115 and/orother elements to facilitate the overall system operation and implementthe functionalities described herein.

Referring to FIG. 20, an embodiment is illustrated where Designer 915may prefer to generate Multi-directional Still Pictures 200 in curvedpaths, for example. Creating a collection of Multi-directional StillPictures 200 representing an object using Maker 920 may include thefollowing steps.

STEP 1: Designer 915 may choose an object to be represented by acollection of Multi-directional Still Pictures 200, a park for example.

STEP 2: Designer 915 may run Maker 920 (i.e. an installed program, a webapplication, etc.) on the Computing Device 70.

STEP 3: Designer 915 may choose a path within the park such as, forexample, the path with Locations 98 a, 98 b, 98 c, 98 d, 98 e, 98 f, 98g, 98 h, etc. Designer 915 may also choose an initial location of thepath such as, for example, Location 98 a.

STEP 4: Maker 920 may ask Designer 915 to move into a location such asthe initial Location 98 a. Maker 920 may guide Designer 915 ingenerating a Multi-directional Still Picture 200 of Designer's 915current location by asking him/her to capture Forward Still Picture 210a, Backward Still Picture 210 b, Right Still Picture 210 c, Left StillPicture 210 d, and any additional Still Pictures from Designer's 915current location using a built-in camera of the Computing Device 70,digital camera, or any other digital picture-taking equipment. Maker 920may then generate a Multi-directional Still Picture 200 of a currentlocation such as Location 98 a including the captured Still Pictures 210a, 210 b, 210 c, 210 d, etc.

STEP 5: Maker 920 may then ask Designer 915 whether he/she wishes tomake a step in forward, backward, right, left or another direction (i.e.up, down, diagonal, angular, etc.). In one example, Designer 915 mayindicate a forward direction to a next location such as Location 98 b.Maker 920 may then guide Designer 915 in generating a Multi-directionalStill Picture 200 of Designer's 915 current location by asking him/herto capture Forward Still Picture 210 a, Backward Still Picture 210 b,Right Still Picture 210 c, Left Still Picture 210 d, and any additionalStill Pictures from Designer's 915 current location using a built-incamera of the Computing Device 70, digital camera, or any other digitalpicture-taking equipment, Maker 920 may then generate aMulti-directional Still Picture 200 of a current location such asLocation 98 b including the captured Still Pictures 210 a, 210 b, 210 c,210 d, etc. Maker 920 may then automatically add a BackwardMulti-directional Still Picture Link 220 b to the currentMulti-directional Still Picture 200 (i.e. of Location 98 b, etc.), suchBackward Multi-directional Still Picture Link 220 b may point to apreviously generated Multi-directional Still Picture 200 (i.e. ofLocation 98 a, etc.). Maker 920 may also automatically add a ForwardMulti-directional Still Picture Link 220 a to a previously generatedMulti-directional Still Picture 200 (i.e. of Location 98 a, etc.), suchForward Multi-directional Still Picture Link 220 a may point to acurrent Multi-directional Still Picture 200 (i.e. of Location 98 b,etc.).

STEP 6: Designer 915 may repeat STEP 5 for subsequent Locations 98 c, 98d, 98 e, 98 f, 98 g, 98 h, etc. until he/she reaches the end of thecurrent path. Representation of the path may be complete when StillPictures 210 a, 210 b, 210 c, 210 d, etc. are captured from allLocations 98 a, 98 b, 98 c, 98 d, 98 e, 98 f, 98 g, 98 h, etc. andMulti-directional Still Picture Links 220 a, 220 b, 220 c, 220 d, etc.are added for adjacent Multi-directional Still Pictures 200 that mayneed to be linked.

STEP 7: Designer 915 may repeat STEP 3, STEP 4, STEP 5, and STEP 6 forany other paths within the park such as the path with Locations 99 a, 99b, 99 c, 99 d, 99 e, etc.

STEP 8: In order to connect Multi-directional Still Pictures 200 and/orcompleted paths in all needed directions beyond the above describedautomatic linking, Maker 920 may include an editor, graphical userinterface (GUI), or other means through which Designer 915 may add ormodify individual data fields of any of the Multi-directional StillPictures 200. In one example, Multi-directional Still Pictures 200 onthe path of Locations 98 a, 98 b, 98 c, 98 d, 98 e, 98 f, 98 g, 98 h,etc. may be connected with Multi-directional Still Pictures 200 on thepath of Locations 99 a, 99 b, 99 c, 99 d, 99 e, etc. by adding, forexample, Left Multi-directional Still Picture Link 220 d toMulti-directional Still Picture 200 of Location 98 c to point toMulti-directional Still Picture 200 of Location 99 a, Designer 915 mayalso add, for example, Right Multi-directional Still Picture Link 220 cto Multi-directional Still Picture 200 of Location 99 a to point toMulti-directional Still Picture 200 of Location 98 c. This way,Multi-directional Still Pictures 200 on the path of Locations 98 a, 98b, 98 c, 98 d, 98 e, 98 f, 98 g, 98 h, etc. and Multi-directional StillPictures 200 on the path of Locations 99 a, 99 b, 99 c, 99 d, 99 e, etc.may be connected in both directions.

STEP 9: Maker 920 may define and/or store in memory a Multi-directionalPictures Repository 115 including previously generated Multi-directionalStill Pictures 200, and/or other elements. In some embodiments.Multi-directional Pictures Repository 115 may be posted as one ofplurality Multi-directional Pictures Repositories 115 that may have beencreated by administrators or users of a network service for sharingMulti-directional Pictures Repositories 115. Such Multi-directionalPictures Repositories 115 may be posted into a central repository (i.e.file, DBMS, database, system, process, data structure, and/or any otherdata repository, etc.) accessible to users of the network service aspreviously described. Multi-directional Pictures Repository 115 maylater be accessed and read by Core Program 110 to implement thefunctionalities described herein.

Other additional steps may be included as needed, or some of thedisclosed ones may be excluded, reordered or modified, or a combinationthereof may be utilized in alternate embodiments.

Referring to FIG. 21, an embodiment is illustrated where Designer 915may prefer to generate Multi-directional Still Pictures 200 in straightpaths using Multi-directional Picture Sequences 350, for example.Creating a collection of Multi-directional Still Pictures 200representing an object using Maker 920 may include the following steps.

STEP 1: Designer 915 may choose an object to be represented by acollection of Multi-directional Still Pictures 200, a park for example.

STEP 2: Designer 915 may run Maker 920 (i.e. an installed program, webapplication, etc.) on the Computing Device 70.

STEP 3: Designer 915 may choose a path within the park such as, forexample, the path with Locations 95 a, 95 b, 95 c, 95 d, 95 e, 95 f, 95g, 95 h, 95 i, etc. in effect defining a Multi-directional PictureSequence 350 a of locations (i.e. steps, etc.) on the path. Designer 915may also choose an initial location of the path such as, for example,Location 95 a. A Multi-directional Picture Sequence 350 such asMulti-directional Picture Sequence 350 a may be conceptual in Designer's915 mind or an actual data structure utilized to store Multi-directionalStill Pictures 200 each representing a location (i.e. step, etc.) on thepath.

STEP 4: Maker 920 may ask Designer 915 to move into a location such asthe initial Location 95 a. Maker 920 may guide Designer 915 ingenerating a Multi-directional Still Picture 200 of Designer's 915current location by asking him/her to capture Forward Still Picture 210a, Backward Still Picture 2101), Right Still Picture 210 c, Left StillPicture 210 d, and any additional Still Pictures from Designer's 915current location using a built-in camera of the Computing Device 70,digital camera, or any other digital picture-taking equipment. Maker 920may then generate a Multi-directional Still Picture 200 of a currentlocation such as Location 95 a including the captured Still Pictures 210a, 210 b, 210 c, 210 d, etc.

STEP 5: Maker 920 may then ask Designer 915 whether he/she wishes tomake a step in forward, backward, right, left or another direction (i.e.up, down, diagonal, angular, etc.). In one example, Designer 915 mayindicate a forward direction to a next location such as Location 95 b.Maker 920 may then guide Designer 915 in generating a Multi-directionalStill Picture 200 of Designer's 915 current location by asking him/herto capture Forward Still Picture 210 a, Backward Still Picture 210 b,Right Still Picture 210 c, Left Still Picture 210 d, and any additionalStill Pictures from Designer's 915 current location using a built-incamera of the Computing Device 70, digital camera, or any other digitalpicture-taking equipment. Maker 920 may then generate aMulti-directional Still Picture 200 of a current location such asLocation 95 b including the captured Still Pictures 210 a, 210 b, 210 c,210 d, etc. Maker 920 may then automatically add a BackwardMulti-directional Still Picture Link 220 b to the currentMulti-directional Still Picture 200 (i.e. of Location 95 b, etc.), suchBackward Multi-directional Still Picture Link 220 b may point to apreviously generated Multi-directional Still Picture 200 (i.e. ofLocation 95 a, etc.). Maker 920 may also automatically add a ForwardMulti-directional Still Picture Link 220 a to a previously generatedMulti-directional Still Picture 200 (i.e. of Location 95 a, etc.), suchForward Multi-directional Still Picture Link 220 a may point to acurrent Multi-directional Still Picture 200 (i.e. of Location 95 b,etc.).

STEP 6: Designer 915 may repeat STEP 5 for subsequent Locations 95 c, 95d, 95 e, 95 f, 95 g, 95 h, 95 i, etc. until he/she reaches the end ofthe current path. Representation of the path may be complete when StillPictures 210 a, 210 b, 210 c, 210 d, etc. are captured from allLocations 95 a, 95 b, 95 c, 95 d, 95 e, 95 f, 95 g, 95 h, 95 i, etc. andMulti-directional Still Picture Links 220 a, 220 b, 220 c, 220 d, etc.are added for adjacent Multi-directional Still Pictures 200 that mayneed to be linked.

STEP 7: Designer 915 may repeat STEP 3, STEP 4, STEP 5, and STEP 6 forany other paths within the park such as the path with Locations 96 a, 96b, 96 c, 96 d, 96 e, 96 f, 96 g, 96 h, 96 i, 96 j, 96 k, 96 l etc.

STEP 8: In order to connect Multi-directional Still Pictures 200 and/orcompleted paths in all needed directions beyond the above describedautomatic linking, Maker 920 may include an editor, graphical userinterface (GUI), or other means through which Designer 915 may intersectany Multi-directional Picture Sequences 350 at specificMulti-directional Still Pictures 200. Selecting any of theMulti-directional Still Pictures 200 from each Multi-directional PictureSequence 350 as common Multi-directional Still Pictures 200 mayintersect the two Multi-directional Picture Sequences 350. In oneexample, Multi-directional Picture Sequence 350 a may be intersectedwith Multi-directional Picture Sequence 350 b by selectingMulti-directional Still Picture 200 of Location 95 c andMulti-directional Still Picture 200 of Location 96 e as commonMulti-directional Still Pictures 200 for Multi-directional PictureSequences 350 a and 350 b. Once common Multi-directional Still Pictures200 are known. Maker 920 may discard Multi-directional Still Pictures200 of Locations 95 c and 96 e, and generate a new Multi-directionalStill Picture 200 of both Locations 95 c and 96 e (also referred to asLocation 95 c/96 e). Maker 920 may also automatically add Still Pictures210 a, 210 b, 210 c, 210 d, etc. from any or both Multi-directionalStill Pictures 200 of Locations 95 c and 96 e to the newMulti-directional Still Picture 200. Maker 920 may also automaticallyadd Multi-directional Still Picture Links 220 a, 220 b, 220 c, 220 d,etc. to the new Multi-directional Still Picture 200 to point to adjacentMulti-directional Still Pictures 200 such as, in this example,Multi-directional Still Pictures 200 of Locations 95 b, 95 d, 96 d and96 f. Maker 920 may also automatically add or modify Multi-directionalStill Picture Links 220 a, 220 b, 220 c, 220 d, etc. of adjacentMulti-directional Still Pictures 200 to point to the newMulti-directional Still Picture 200. In another example, Maker 920 maycombine Multi-directional Still Picture Links 220 a, 220 b, 220 c, 220d, etc. of Multi-directional Still Pictures 200 of Locations 95 c and 96e. Particularly, the new Multi-directional Still Picture 200 may include(1) Multi-directional Still Picture Links 220 a and 220 b ofMulti-directional Still Picture 200 of Location 95 c, and (2)Multi-directional Still Picture Links 220 c and 220 d ofMulti-directional Still Picture 200 of Location 96 e. Maker 920 may alsoadd or modify Multi-directional Still Picture Links 220 a, 220 b, 220 c,220 d, etc. of the surrounding Multi-directional Still Pictures 200 byreverse linking them with the new Multi-directional Still Picture 200 ofLocation 95 c/96 e as previously described. As such, Multi-directionalPicture Sequences 350 a and 350 b may be intersected and/or interlinkedin all needed directions. In some embodiments, instead of discardingthem, any or both of Multi-directional Still Pictures 200 of Locations95 c and 96 e may continue to be used in addition to the newMulti-directional Still Picture 200 of Location 95 c/96 e in which casethe three Multi-directional Still Pictures 200 may be interlinked.

STEP 9: Maker 920 may define and/or store in memory a Multi-directionalPictures Repository 115 including Multi-directional Picture Sequences350 a and 350 b, previously generated Multi-directional Still Pictures200, and/or other elements. In some embodiments, Multi-directionalPictures Repository 115 may be posted as one of pluralityMulti-directional Pictures Repositories 115 that may have been createdby administrators or users of a network service for sharingMulti-directional Pictures Repositories 115. Such Multi-directionalPictures Repositories 115 may be posted into a central repository (i.e.file, DBMS, database, system, process, data structure, and/or any otherdata repository, etc.) accessible to users of the network service aspreviously described. Multi-directional Pictures Repository 115 maylater be accessed and read by Core Program 110 to implement thefunctionalities described herein.

Other additional steps may be included as needed, or some of thedisclosed ones may be excluded, reordered or modified, or a combinationthereof may be utilized in alternate embodiments.

Still referring to FIG. 21, in some embodiments Designer 915 may preferto capture Still Pictures 210 a, 210 b, 210 c, 210 d, etc. from alllocations of a represented object, store them in memory of ComputingDevice 70, and generate Multi-directional Still Pictures 200 from thestored Still Pictures 210 a, 210 b, 210 c, 210 d, etc., for example.Creating a collection of Multi-directional Still Pictures 200representing an object using Maker 920 may include the following steps.

STEP 1: Designer 915 may choose an object to be represented by acollection of Multi-directional Still Pictures 200, a park for example.

STEP 2: Designer 915 may choose paths within the park such as, forexample, the path with Locations 95 a, 95 b, 95 c, 95 d, 95 e, 95 f, 95g, 95 h, 95 i, etc. and path with Locations 96 a, 96 b, 96 c, 96 d, 96e, 96 f, 96 g, 96 h, 96 i, 96 j, 96 k, 96 l etc. in effect defining aMaze 300 of locations (i.e. steps, etc.) in the park. Designer 915 mayalso choose an initial location such as, for example, Location 95 a. AMaze 300 may be conceptual in Designer's 915 mind or an actual datastructure utilized to store (1) Multi-directional Still Pictures 200each representing a location (i.e. step, etc.) in the park, and/or (2)Multi-directional Picture Sequences 350 each representing a walkway inthe park.

STEP 3: Designer 915 may move into a location such as Location 95 a andcapture Forward Still Picture 210 a, Backward Still Picture 210 b, RightStill Picture 210 c, Left Still Picture 210 d, and/or any additionalStill Pictures from Designer's 915 current location using a built-incamera of the Computing Device 70, digital camera, or any other digitalpicture-taking equipment. The captured Still Pictures 210 a, 210 b, 210c, 210 d, etc. may be stored as digital pictures (i.e. digital picturefiles, etc.) in Memory 180 or Physical Storage Medium 181 of theComputing Device 70, or of a built-in camera of the Computing Device 70,digital camera, or any other digital picture-taking equipment. In someembodiments, a classic analog photo camera may be used and picturesscanned into digital format later. In other embodiments, a video cameramay be used and frames of the video may be captured as Still Pictures210 a, 210 b, 210 c, 210 d, etc. In yet other embodiments in whichpicture stitching may be implemented. Still Pictures 210 a, 210 b, 210c, 210 d, etc. with overlapping fields of view may be captured tofacilitate picture stitching as previously described.

STEP 4: Designer 915 may repeat STEP 3 for subsequent Locations 95 b, 95c, 95 d, 95 e, 95 f, 95 g, 95 h, 95 i, etc. until he/she reaches the endof the current path.

STEP 5: Designer 915 may repeat STEP 3 and STEP 4 for any other pathswithin the park such as the path with Locations 96 a, 96 b, 96 c, 96 d,96 e, 96 f, 96 g, 96 h, 96 i, 96 j, 96 k, 96 l etc.

STEP 6: Designer 915 may run Maker 920 (i.e. an installed program, webapplication, etc.) on the Computing Device 70.

STEP 7: As shown in FIG. 22, Maker 920 may guide Designer 915 indefining a Multi-directional Still Picture 200 such as theMulti-directional Still Picture 200 of Location 95 a by asking him/herto add Forward Still Picture 210 a, Backward Still Picture 210 b, RightStill Picture 210 c, Left Still Picture 210 d, and/or any additionalStill Pictures through a Still Picture Selection Window 925. Designer915 may add Still Pictures 210 a, 210 b, 210 c, 210 d, etc. to thecurrent Multi-directional Still Picture 200 by selecting from a list ofpreviously stored Still Pictures 210 a, 210 b, 210 c, 210 d, etc.displayed in the Still Picture Selection Window 925. In someembodiments, Still Picture Selection Window 925 may display StillPictures 210 a, 210 b, 210 c, 210 d, etc. each stored in a separate filein Memory 180 or Physical Storage Medium 181.

STEP 8: As shown in FIG. 23, Maker 920 may guide Designer 915 in furtherdefining a Multi-directional Still Picture 200 such as theMulti-directional Still Picture 200 of Location 95 a by asking him/herto add Forward Multi-directional Still Picture Link 220 a, BackwardMulti-directional Still Picture Link 220 b, Right Multi-directionalStill Picture Link 220 c, Left Multi-directional Still Picture Link 220d, and/or any additional Multi-directional Still Picture Links through aMulti-directional Still Picture Selection Window 935, Designer 915 mayadd Multi-directional Still Picture Links 220 a, 220 b, 220 c, 220 d,etc. to the current Multi-directional Still Picture 200 by selectingfrom a list of previously stored Multi-directional Still Pictures 200displayed in the Multi-directional Still Picture Selection Window 935.In some embodiments, Multi-directional Still Picture Selection Window935 may display Multi-directional Still Pictures 200 each stored in aseparate object file in Memory 180 or Physical Storage Medium 181.

STEP 9: Maker 920 may ask Designer 915 to assign an identifier (i.e.name, etc.) to the current Multi-directional Still Picture 200 or Maker920 may automatically assign a suitable identifier (i.e. a unique namethat may include date and time including seconds or milliseconds, etc.).Maker 920 may then generate the Multi-directional Still Picture 200including the added Still Pictures 210 a, 210 b, 210 c, 210 d, etc.,Multi-directional Still Picture Links 220 a, 220 b, 220 c, 220 d, etc.,and/or any other elements.

STEP 10: Designer 915 may repeat STEP 7, STEP 8 and STEP 9 to generateany additional Multi-directional Still Pictures 200 each representing alocation of a represented object (i.e. park in this example).

STEP 11: in order to connect Multi-directional Still Pictures 200 and/orMulti-directional Picture Sequences 350 (i.e. paths) in all neededdirections, Maker 920 may include an editor, graphical user interface(GUI), or other means through which Designer 915 may add or modifyindividual Multi-directional Still Picture Links 220 a, 220 b, 220 c,220 d, etc. of any of the Multi-directional Still Pictures 200 aspreviously described. Alternatively, Maker 920 may include an editor,graphical user interface (GUI), or other means through which Designer915 may intersect any Multi-directional Picture Sequences 350 atspecific Multi-directional Still Pictures 200 as previously described.

STEP 12: Maker 920 may define and/or store in memory a Multi-directionalPictures Repository 115 including Multi-directional Picture Sequences350 a and 350 b, previously generated Multi-directional Still Pictures200, and/or other elements. In some embodiments, Multi-directionalPictures Repository 115 may be posted as one of pluralityMulti-directional Pictures Repositories 115 that may have been createdby administrators or users of a network service for sharingMulti-directional Pictures Repositories 115. Such Multi-directionalPictures Repositories 115 may be posted into a central repository (i.e.file, DBMS, database, system, process, data structure, and/or any otherdata repository, etc.) accessible to users of the network service aspreviously described. Multi-directional Pictures Repository 115 maylater be accessed and read by Core Program 110 to implement thefunctionalities described herein.

Other additional steps may be included as needed, or some of thedisclosed ones may be excluded, reordered or modified, or a combinationthereof may be utilized in alternate embodiments.

In some embodiments, any method, system, or apparatus for creating acollection of Multi-directional Still Pictures 200 representing anobject may include searching digital pictures in any Multi directionalPictures Repository 115, any picture database, any picture repository,or any collection of pictures to find same or similar picture that auser may need or want to capture. Such picture may have been capturedpreviously by the same or another user. If found, such picture mayeliminate the need to capture the same or similar picture again savingthe user time. For example, public places such as Arlington NationalCemetery, Library of Congress, public streets, public parks, and/orother public places may have pictures captured from their variouslocations and stored in a picture repository that may be accessed byMaker 920. As such, Maker 920 may include functions and/or algorithmsfor detecting pictures needed for creating collections ofMulti-directional Still Pictures 200 representing an object. Suchfunctions and/or algorithms may include any of the previously or laterdescribed techniques or steps thereof such as finding Still Pictures 210a, 210 b, 210 c, 210 d, etc. that may be within a line of sight from aspecific location, automatically detecting Still Pictures 210 a, 210 b,210 c, 210 d, etc. from a collection of digital pictures (laterdescribed), automatically detecting Multi-directional Still PictureLinks 220 a, 220 b, 220 c, 220 d, etc. (later described), and/or anyother techniques or algorithms known in art for detecting digitalpictures having specific patterns. As digital pictures may be capturedby various users at various times of day or night. Maker 920 may includefunctions or algorithms for lighting and/or color adjustment orcorrection in digital pictures. Any techniques or algorithms known inart may be used for lighting and/or color adjustment or correction.Lighting and/or color adjustment or correction (also referred to as graybalance, neutral balance, white balance, etc.) may generally representrebalancing of the intensities of the colors (typically red, green, andblue primary colors if RGB color model is used) with a goal to renderspecific colors correctly or differently for reproduction, comparison,processing or any other purpose. Color rebalancing techniques oralgorithms known in art usually directly manipulate red, green, and bluepixel values of a digital picture. Maker 920 may therefore utilize thesetechniques or algorithms to adjust or correct lighting and/or colors ofa digital picture captured at a different time of day or night beforecomparing it with a reference picture, before detecting any neededpatterns, or before conducting any other picture processing. In someembodiments, Maker 920 may incrementally adjust (i.e. increase ordecrease by one the red, green, and blue pixel values in each cycle ofcomparisons, etc.) or correct lighting and/or colors of a digitalpicture before comparing the incrementally adjusted or corrected picturewith a reference picture, before detecting any needed patterns, orbefore conducting any other picture processing. The threshold forsimilarity in each of the pixels required for a match may be adjustableby a user or automatically adjustable as needed. Such threshold mayinclude exact match such as 100% match, nearly exact match such as 90%or 80% match, mostly match such as 70% or 60%, half match such as 50%,low match such as 40% or 30% match, or any other match. The thresholdfor the number of pixels required for a match may similarly beadjustable,

Referring to FIG. 24, the illustration shows an embodiment of Maker 920including automatic detection of Still Pictures 210 a, 210 b, 210 c, 210d, etc. from a collection of digital pictures. Maker 920 may includepicture processing implemented on a Computing Device 70 to automaticallydetect Still Pictures 210 a, 210 b, 210 c, 210 d, etc. to aid a user increating a collection of Multi-directional Still Pictures 200representing an object. In some embodiments, creating a collection ofMulti-directional Still Pictures 200 representing an object may includeautomatic detection of Still Pictures 210 a, 210 b, 210 c, 210 d, etc.,and generation of Multi-directional Still Pictures 200 including thedetected Still Pictures 210 a, 210 b, 210 c, 210 d, etc. In otherembodiments, creating a collection of Multi-directional Still Pictures200 representing an object may include automatic detection of StillPictures 210 a, 210 b, 210 c, 210 d, etc. of an initialMulti-directional Still Picture 200, generation of the initialMulti-directional Still Picture 200 including the detected StillPictures 210 a. 210 b, 210 c. 210 d, etc., automatic detection of links(later described) with, and generation of, adjacent Multi-directionalStill Pictures 200 including their automatically detected Still Pictures210 a, 210 b, 210 c, 210 d, etc., and so on. In some embodiments,automatic detection of Still Pictures 210 a, 210 b, 210 c, 210 d, etc.of a Multi-directional Still Picture 200 may include comparing picturesin a collection of digital pictures to determine if one picture mayinclude an overlapping field of view of another picture. Finding apicture that may include an overlapping field of view of another picturemay indicate that the two pictures may have been captured from the samelocation of a represented object in different directions and that thetwo pictures may belong to a same Multi-directional Still Picture 200.In some aspects, comparing digital pictures to determine if one mayinclude an overlapping field of view of another picture may be performedby determining if a subset of pixels of one picture (i.e. comparativepicture) may match a subset of pixels of another picture (i.e. referencepicture). In other aspects, comparing digital pictures to determine ifone may include an overlapping field of view of another picture may beperformed by determining if a subset of pixels of one picture (i.e.comparative picture) may match a subset of pixels of another picture(i.e. reference picture) near opposite edges of the compared pictures.The threshold for similarity in each of the pixels required for a matchmay be adjustable by a user or automatically adjustable as needed. Suchthreshold may include exact match such as 100% match, nearly exact matchsuch as 90% or 80% match, mostly match such as 70% or 60%, half matchsuch as 50%, low match such as 40% or 30% match, or any other match. Thethreshold for the number of pixels required for a match may similarly beadjustable. Any of the publically available or other functions oralgorithms for detecting overlapping fields of view such as an algorithmused in digital picture stitching may be used in such comparisons.Pictures found to include matching subsets of pixels (i.e. overlappingfields of view from a same location of a represented object) may beincluded as Still Pictures 210 a, 210 b, 210 c, 210 d, etc. of a sameMulti-directional Still Picture 200. If matching subsets of pixels (i.e.overlapping fields of view) are not found in a reference picture and acomparative picture, the comparison may be performed between thereference picture and all other pictures (i.e. comparative pictures) ina collection of digital pictures. When the comparison is completebetween one reference picture and all comparative pictures, anotherpicture in the collection of digital pictures may then be used as a newreference picture with which all other pictures (i.e. comparativepictures) may be compared until all pictures in the collection arecompared. As such, all pictures in the collection of digital picturesmay be compared with all other pictures in the collection to find allpictures with overlapping fields of view.

In one example, picture processing may be implemented on a ComputingDevice 70 to find Still Pictures 210 a, 210 b, 210 c, 210 d, etc. of aMulti-directional Still Picture 200 in a collection of digital pictures.The collection of digital pictures may include Pictures 711 and 712 asshown in FIG. 24. Picture 711 may be a reference picture with which allother pictures (i.e. comparative pictures) in a collection of digitalpictures may be compared in one cycle of comparisons. Picture 712 may bea comparative picture and it may be one of the pictures in thecollection of digital pictures that may be compared with Picture 711.Picture 711 and Picture 712 may be compared to determine if a subset ofpixels near one edge of Picture 711 may match a subset of pixels nearthe opposite edge of Picture 712. If a subset of pixels of Picture 711is found to match a subset of pixels of Picture 712, Pictures 711 and712 may be Still Pictures (i.e. Forward Still Picture 210 a and RightStill Picture 210 c for example, etc.) of a same Multi-directional StillPicture 200. Any of the described steps for comparing Picture 711 andPicture 712 may be performed with all other pictures in the collectionof digital pictures to find all pictures that may belong to sameMulti-directional Still Pictures 200. In some embodiments, a user mayutilize a wide lens camera to capture digital pictures with overlappingfields of view needed for automatic detection of Still Pictures 210 a,210 b, 210 c, 210 d, etc. In other embodiments, a user may utilize astandard lens camera to capture an increased number of digital picturesto ensure overlapping fields of view needed for automatic detection ofStill Pictures 210 a, 210 b, 210 c, 210 d, etc. In some aspects, Maker920 may include an editor, graphical user interface or other meansthrough which a user may access any Multi-directional Still Picture 200and add to it a new Still Picture 210 a, 210 b, 210 c, 210 d, etc. (i.e.still picture that the automatic detection may have missed, etc.) ormodify its existing Still Picture 210 a, 210 b, 210 c, 210 d, etc. (i.e.still picture that the automatic detection may have includederroneously, etc.). In some embodiments, Still Pictures 210 a, 210 b,210 c, 210 d, etc. with overlapping fields of view from a same locationof a represented object may be stitched into a Combined Picture 227through the previously described picture stitching process.

In some embodiments, Maker 920 may be implemented to include automaticdetection of Still Pictures 210 a, 210 b, 210 c, 210 d, etc. from acollection of digital pictures stored in a picture database. A picturedatabase may include one or more files, one or more DBMSs, one or moredatabases, one or more data structures, one or more systems, one or moreprocesses, and/or one or more any other data repositories. A picturedatabase may include a local picture database stored on Computing Device70. A picture database may also include a remote picture database storedon a Remote Computing Device 1310 (i.e. application server, cloud, etc.)accessible over a Network 1300 (i.e. corporate enterprise network,Internet, etc.). A picture database may include pictures of arepresented object captured by a number of users. In some aspects, aremote picture database may be publically available such as, forexample, Yahoo Images, Google Images, and/or other publically availablepicture databases. In other aspects, a remote picture database may beavailable to subscribers or members of an image sharing service such as,for example, flickr.com, tinypic.com, imgur.com, postimage.org,photobucket.com, and/or other image sharing services. In yet otheraspects, a remote picture database may be available to subscribers ormembers of social media that may include picture sharing functionalitysuch as Facebook, Twitter, and/or other social media. In one example, apicture database may include digital pictures of an object such asArlington National Cemetery in Virginia, Library of Congress inWashington D.C., and/or any other object of which a number of users mayhave captured digital pictures from various locations. In anotherexample, a picture database may include digital pictures of variousobjects (i.e. Facebook picture database including pictures of allobjects captured by all Facebook users, etc.) and a filter may beimplemented to seek pictures of the object to be represented in aspecific collection of Multi-directional Still Pictures 200. The filtermay seek pictures having “Arlington National Cemetery” included in thepicture name, for example. Once pictures of a desired object are foundin a picture database, creating a collection of Multi-directional StillPictures 200 representing an object may include any of the previouslydescribed steps or techniques using Maker 920 to manually orautomatically generate Multi-directional Still Pictures 200 of therepresented object (i.e. Arlington National Cemetery, Library ofCongress, etc.).

The described techniques for automatic detection of Still Pictures 210a, 210 b, 210 c, 210 d, etc. of Multi-directional Still Pictures 200 maysimilarly be utilized with Multi-directional Motion Pictures 400 (laterdescribed) where automatic detection and/or other operations asdescribed may be performed in streams of still pictures. In someembodiments, automatic detection of Motion Pictures 410 a, 410 b, 410 c,410 d, etc. may be performed as previously described where processing orcomparisons may be performed for each still picture in a stream of stillpictures (i.e. motion picture, etc.) to find a match. Therefore,additional cycles of processing or comparisons may be performed. In someembodiments, still pictures from different streams having same timestamps may be processed or compared. In other embodiments, stillpictures from different streams having similar time stamps may beprocessed or compared in which case a threshold may be defined by useror automatically to control how far before or after a specific stillpicture (i.e. frame, etc.) a search may go to find a matching stillpicture or a portion thereof.

Referring to FIG. 25, the illustration shows an embodiment of a method3200 for automatically detecting Still Pictures 210 a, 210 b, 210 c, 210d, etc. from a collection of digital pictures. The steps of thisexemplary method may therefore be used by a user on a computing deviceoperating an interface for a MDP Unit 100 to enable the user to create acollection of multi-directional still pictures representing an object ina user-friendly process. One of ordinary skill in art will understandthat some or all steps of this method may be reordered, and that otheradditional steps may be included as needed, or some of the disclosedones may be excluded, or a combination thereof may be utilized inalternate embodiments. Some or all steps of this method may similarly beutilized for automatically detecting Motion Pictures 410 a, 410 b, 410c, 410 d, etc. (later described) from a collection of motion pictures(i.e. streams of still pictures).

At step 3205, a collection of digital pictures is maintained in memoryof a computing device. At step 3210, subsets of a first digital pictureand subsets of a second digital picture are compared, the comparedsubsets being near opposite edges of the first and the second digitalpictures. At step 3215, a determination is made that a subset of thefirst digital picture is sufficiently similar to a subset of the seconddigital picture to indicate an overlapping field of view between the twodigital pictures. At step 3220, a first multi-directional still pictureis generated to include the first and the second digital pictures, thefirst and the second digital pictures depicting a first and a seconddifferently directed views from a first location of a representedobject. At step 3225, subsets of the first digital picture and subsetsof a third digital picture are compared, the compared subsets being nearopposite edges of the first and the third digital pictures. At step3230, a determination is made that a subset of the first digital pictureis sufficiently similar to a subset of the third digital picture toindicate an overlapping field of view between the two digital pictures.At step 3235, the third digital picture is added to the firstmulti-directional still picture, the third digital picture depicting athird differently directed view from the first location of therepresented object. At step 3240, steps 3225-3235 are repeated tocompare subsets of the first digital picture and subsets of anyadditional digital pictures in the collection, the compared subsetsbeing near opposite edges of their respective pictures. At step 3245,steps 3210-3240 are repeated to compare subsets of any digital picturesadditional to the first digital picture and subsets of any other digitalpictures in the collection, the compared subsets being near oppositeedges of their respective pictures.

In some aspects, the teaching presented by the disclosure may beimplemented in a device or system for detecting still pictures. Thedevice or system may include a processor and an interface, coupled tothe processor, for receiving a collection of still pictures. The deviceor system may further include a comparator, coupled to the processor,for comparing subsets of a first still picture and subsets of a secondstill picture, the compared subsets being near opposite edges of thefirst and the second still pictures, and determining that a subset ofthe first still picture is sufficiently similar to a subset of thesecond still picture to indicate an overlapping field of view betweenthe two still pictures. The device or system may further include anassembler, coupled to the processor, for generating a firstmulti-directional still picture to include the first and the secondstill pictures, the first and the second still pictures depicting afirst and a second differently directed views from a first location of arepresented object. The comparator may further be configured to: comparesubsets of the first still picture and subsets of a third still picture,the compared subsets being near opposite edges of the first and thethird still pictures, and determine that a subset of the first stillpicture is sufficiently similar to a subset of the third still pictureto indicate an overlapping field of view between the two still pictures,wherein the assembler may further be configured to add the third stillpicture to the first multi-directional still picture, the third stillpicture depicting a third differently directed view from the firstlocation of the represented object. The processor, the interface, thecomparator, the assembler and/or other elements of the device or systemfor detecting still pictures may include any features andfunctionalities of Processor 11, Maker 920, Multi-directional PicturesRepository 115, and/or other disclosed elements. The device or systemmay also include any functionalities or steps of any disclosed methodssuch as, for example, method 3200. For example, Maker 920 may beimplemented on Processor 11 and it may read a collection of stillpictures from a source such as, for example, a picture database.Comparator may be implemented on Processor 11 and it may perform thedescribed picture processing to find still pictures having overlappingfields of view in the collection. Assembler may be implemented onProcessor 11 and it may organize the still pictures found to haveoverlapping fields of view into multi-directional still pictures.Assembler may also store the still pictures or references thereto, anydata structures (i.e. multi-directional still pictures, mazes,sequences, etc.) and/or other elements in Multi-directional PicturesRepository 115. Comparator and assembler may be included in Maker 920,they may be separate programs implemented on Processor 11, they may behardware components or separate processors dedicated to their assignedfunctionalities, or a combination thereof.

Referring to FIG. 26, the illustration shows an embodiment of Maker 920including automatic detection of links among Multi-directional StillPictures 200. Maker 920 may include picture processing implemented on aComputing Device 70 to automatically detect links amongMulti-directional Still Pictures 200 to aid a user in creating acollection of Multi-directional Still Pictures 200 representing anobject. In some embodiments, creating a collection of Multi-directionalStill Pictures 200 representing an object may include automaticdetection of Multi-directional Still Picture Links 220 a, 220 b, 220 c,220 d, etc. among Multi-directional Still Pictures 200. In otherembodiments, creating a collection of Multi-directional Still Pictures200 representing an object may include automatic detection ofMulti-directional Still Picture Links 220 a, 220 b, 220 c, 220 d, etc.of an initial Multi-directional Still Picture 200, automatic detectionof Multi-directional Still Picture Links 220 a, 220 b, 220 c, 220 d,etc. of Multi-directional Still Pictures 200 adjacent to the initialMulti-directional Still Pictures 200, and so on. In some embodiments,automatic detection of links among Multi-directional Still Pictures 200may include comparing a Still Picture 210 a, 210 b, 210 c, 210 d, etc.of one Multi-directional Still Picture 200 with a Still Picture 210 a,210 b, 210 c, 210 d, etc. of another Multi-directional Still Picture 200to determine if a subset of one Still Picture 210 a, 210 b, 210 c, 210d, etc. may include all or a portion of another Still Picture 210 a, 210b, 210 c, 210 d, etc. Finding a Still Picture 210 a, 210 b, 210 c, 210d, etc. of one Multi-directional Still Picture 200 whose subset mayinclude all or a portion of a Still Picture 210 a, 210 b, 210 c, 210 d,etc. of another Multi-directional Still Picture 200 may indicate a linkbetween the two Multi-directional Still Pictures 200. This indicationmay be derived from a premise that if a portion (i.e. subset, etc.) of afield of view of one digital picture (i.e. reference picture, etc.) mayinclude all or a portion of a field of view of another digital picture(i.e. comparative picture, etc.), the two digital pictures may beportraying the same line of view in perspective, which may indicateviews (i.e. still pictures) of adjacent Multi-directional Still Pictures200. In some aspects, comparing digital pictures to determine if asubset of one may include all or a portion of another picture may beperformed by determining if a subset of pixels of one picture (i.e.reference picture, etc.) may match all or a portion of pixels of anotherpicture (i.e. comparative picture, etc.). The threshold for similarityin each of the pixels required for a match may be adjustable by a useror automatically adjustable as needed. Such threshold may include exactmatch such as 100% match, nearly exact match such as 90% or 80% match,mostly match such as 70% or 60%, half match such as 50%, low match suchas 40% or 30% match, or any other match. The threshold for the number ofpixels required for a match may similarly be adjustable. In otheraspects, comparing digital pictures to determine if a subset of one mayinclude all or a portion of another picture may be performed bydetermining if a subset of pixels of one picture (i.e. referencepicture, etc.) may match all or a portion of pixels of a resized (i.e.downsized, upsized, etc.) another picture (i.e. comparative picture,etc.). Any of the publically available or other digital picture resizingalgorithms or techniques may be used. Resizing of a comparative picturemay be performed incrementally (i.e. resizing by one pixel at a time inlength or width keeping aspect ratio constant, etc.) to reduce orincrease the size (i.e. number of pixels, etc.) of the comparativepicture. Each incrementally resized comparative picture or a copythereof may then be compared with all subsets of a reference picture. Acomparative picture whose resized copy may be found to match a largestsubset of a reference picture may be a Still Picture 210 a, 210 b, 210c, 210 d, etc. of an adjacent Multi-directional Still Picture 200 withwhich a link may be added. If a match is not found between any subsetsof a reference picture and any of the incrementally resized comparativepictures or copies thereof, the comparison may be performed betweensubsets of the reference picture and resized other Still Pictures 210 a,210 b, 210 c, 210 d, etc. (i.e. comparative pictures) or copies thereofin a MDP application. When the comparison is complete between allsubsets of one reference picture and all resized comparative pictures orcopies thereof, another Still Picture 210 a, 210 b, 210 c, 210 d, etc.of any Multi-directional Still Picture 200 may be used as a newreference picture whose subsets may be compared with resized other StillPictures 210 a, 210 b, 210 c, 210 d, etc. (i.e. comparative pictures) orcopies thereof in a MDP application until all Still Pictures 210 a, 210b, 210 c, 210 d, etc. are compared. As such, subsets of all StillPictures 210 a, 210 b, 210 c, 210 d, etc. in a MDP application may becompared with all other Still Pictures 210 a, 210 b, 210 c, 210 d, etc.(i.e. resized other Still Pictures 210 a, 210 b, 210 c, 210 d, etc.) orcopies thereof to find all Still Pictures 210 a, 210 b, 210 c, 210 d,etc. whose subsets may include all or a portion of other Still Pictures210 a, 210 b, 210 c, 210 d, etc.

In one example, picture processing may be implemented on a ComputingDevice 70 to find a link between two Multi-directional Still Pictures200 one of which may include a Forward Still Picture 210 ar and theother Multi-directional Still Picture 200 may include a Forward StillPicture 210 ac. Forward Still Picture 210 ar may be a reference picturewith which all other Still Pictures 210 a, 210 b, 210 c, 210 d, etc.(i.e. comparative pictures) in a MDP application may be compared in onecycle of comparisons. Forward Still Picture 210 ac may be a comparativepicture and it may be one of the Still Pictures 210 a, 210 b, 210 c, 210d, etc. that may be compared with Forward Still Picture 210 ar. ForwardStill Picture 210 ar and Forward Still Picture 210 ac may be compared todetermine if a subset of pixels of Forward Still Picture 210 ar maymatch all or a portion of pixels of Forward Still Picture 210 ac. Suchcomparison may include incrementally downsizing Forward Still Picture210 ac by one pixel at a time in length or width keeping aspect ratioconstant (i.e. reducing the size from 48×36 pixels to 47×35 pixels,etc.) to derive a Downsized Forward Still Picture 210 acd as shown inStep 1 in FIG. 26. The Downsized Forward Still Picture 210 acd may thenbe compared to all subsets of Forward Still Picture 210 ar to find asubset of Forward Still Picture 210 ar that may match all or a portionof pixels of the Downsized Forward Still Picture 210 acd. The DownsizedForward Still Picture 210 acd may first be compared with a same sized(i.e. 47×35 pixels in this example, etc.) initial subset of ForwardStill Picture 210 ar starting at pixel [1,1] as shown in Step 2 in FIG.26. If a match is not found, the Downsized Forward Still Picture 210 acdmay then be compared with a same sized (i.e. 47/35 pixels in thisexample, etc.) subset of Forward Still Picture 210 ar starting at pixel[2,1], if a match is still not found, the Downsized Forward StillPicture 210 acd may then be compared with same sized (i.e. 47/35 pixelsin this example, etc.) subsets of Forward Still Picture 210 ar eachstarting at remaining pixels in y line 1 (i.e. [3,1], [4,1], [5,1], . .. [48,1]). If a match is still not found, the Downsized Forward StillPicture 210 acd may then be compared with same sized (i.e. 47/35 pixelsin this example, etc.) subsets of Forward Still Picture 210 ar eachstarting at remaining pixels in y lines 2 (i.e. [1,2], [2,2], [3,2], . .. [48,2]), 3, 4, and so on until the last pixel of Forward Still Picture210 ar. The comparison may include any initial subset of Forward StillPicture 210 ar such as, for example, a subset in the middle of ForwardStill Picture 210 ar, subset at the end of Forward Still Picture 210 ar,subset at right of Forward Still Picture 210 ar, subset at left ofForward Still Picture 210 ar, and/or any other initial subset. Also, thecomparison may include any search pattern for subsets of Forward StillPicture 210 ar such as, for example, linear searching in any direction,outward searching from a middle subset, forward searching from a regionin the beginning, backward searching from a region at the end, and/orany other search pattern. If a match is not found between the DownsizedForward Still Picture 210 acd and any subset of Forward Still Picture210 ar, Forward Still Picture 210 ac may be downsized to a next smallersize. The new Downsized Forward Still Picture 210 acd may then becompared to all subsets of Forward Still Picture 210 ar to find a subsetof Forward Still Picture 210 ar that may match all or a portion of thenew Downsized Forward Still Picture 210 acd. Incrementally downsizingForward Still Picture 210 ac and comparing the Downsized Forward StillPictures 210 acd with subsets of Forward Still Picture 210 ar may berepeated until a match is found. If any subset of Forward Still Picture210 ar is found to match all or a portion of any Downsized Forward StillPicture 210 acd, forward Still Picture 210 ac may be a Still Picture ofan adjacent Multi-directional Still Picture 200 with which a ForwardMulti-directional Still Picture Link 220 a may be added. Any of thedescribed steps for comparing subsets of Forward Still Picture 210 arwith Downsized Forward Still Pictures 210 acd may be performed with allStill Pictures 210 a, 210 b, 210 c, 210 d, etc. in a MDP application tofind links among all Multi-directional Still Pictures 200. In someaspects, Maker 920 may include an editor, graphical user interface orother means through which a user may access any Multi-directional StillPicture 200 and add to it a new Multi-directional Still Picture Link 220a, 220 b, 220 c, 220 d, etc. (i.e. a link that the automatic detectionmay have missed, etc.) and/or modify its existing Multi-directionalStill Picture Link 220 a, 220 b, 220 c, 220 d, etc. (i.e. a link thatthe automatic detection may have included erroneously, etc.). Thedescribed techniques for automatic detection of links amongMulti-directional Still Pictures 200 may similarly be utilized withMulti-directional Motion Pictures 400 (later described) where automaticdetection and/or other operations as described may be performed instreams of still pictures. In some embodiments, automatic detection oflinks among Motion Pictures 410 a, 410 b, 410 c, 410 d, etc. may beperformed as previously described where processing or comparisons may beperformed for each still picture in a stream of still pictures (i.e.motion picture, etc.) to find a match. Therefore, additional cycles ofprocessing or comparisons may be performed. In some embodiments, stillpictures from different streams having same time stamps may be processedor compared. In other embodiments, still pictures from different streamshaving similar time stamps may be processed or compared in which case athreshold may be defined by user or automatically to control how farbefore or after a specific still picture (i.e. frame, etc.) a search maygo to find a matching still picture or a portion thereof.

Referring to FIG. 27, the illustration shows an embodiment of a method3300 for automatically detecting Multi-directional Still Picture Links220 a, 220 b, 220 c, 220 d, etc. from a collection of Multi-directionalStill Pictures 200. The steps of this exemplary method may therefore beused by a user on a computing device operating an interface for a MDPUnit 100 to enable a user to create a collection of Multi-directionalStill Pictures 200 representing an object in a user-friendly process.One of ordinary skill in art will understand that some or all steps ofthis method may be reordered, and that other additional steps may beincluded as needed, or some of the disclosed ones may be excluded, or acombination thereof may be utilized in alternate embodiments. Some orall steps of this method may similarly be utilized for automaticallydetecting Multi-directional Motion Picture Links 420 a, 420 b, 420 c,420 d, etc. from a collection of Multi-directional Motion Pictures 400.In some embodiments, the steps of this method may be used in combinationwith the steps of method 3200 that automatically detects Still Pictures210 a, 210 b, 210 c, 210 d, etc. from a collection of digital picturesand creates a collection of multi-directional still pictures.

At step 3305, a collection of multi-directional still pictures eachassociated with a location of a represented object and each includingone or more differently directed still pictures is maintained in memoryof a computing device. At step 3310, a first still picture of the firstmulti-directional still picture is incrementally resized. At step 3315,subsets of a first still picture of a second multi-directional stillpicture are compared with the incrementally resized first still pictureof the first multi-directional still picture. At step 3320, steps 3310and 3315 are repeated to compare subsets of the first still picture ofthe second multi-directional still picture with each incrementallyresized first still picture of the first multi-directional stillpicture. At step 3325, a determination is made that a subset of thefirst still picture of the second multi-directional still picture issufficiently similar to an incrementally resized first still picture ofthe first multi-directional still picture to indicate a line of sight.At step 3330, a link with the second multi-directional still picture isadded to the first multi-directional still picture and a link with thefirst multi-directional still picture is added to the secondmulti-directional still picture. At step 3335, steps 3310-3330 arerepeated to compare subsets of additional still pictures of the secondand any other multi-directional still pictures with each incrementallyresized first still picture of the first multi-directional still pictureand to add links. At step 3340, steps 3310-3335 are repeated to comparesubsets of additional still pictures of the second and any othermulti-directional still pictures with each incrementally resized stillpicture of any other multi-directional still pictures in the collectionand to add links.

In some aspects, the teaching presented by the disclosure may beimplemented in a device or system for detecting links amongmulti-directional still pictures. The device or system may include aprocessor and an interface, coupled to the processor, for receiving acollection of multi-directional still pictures each multi-directionalstill picture associated with a location of a represented object andincluding one or more differently directed still pictures. The device orsystem may further include a comparator, coupled to the processor, forincrementally resizing a first still picture of the firstmulti-directional still picture, comparing subsets of a first stillpicture of a second multi-directional still picture with theincrementally resized first still picture of the first multi-directionalstill picture, and determining that a subset of the first still pictureof the second multi-directional still picture is sufficiently similar toan incrementally resized first still picture of the firstmulti-directional still picture to indicate a line of sight. The deviceor system may further include an assembler, coupled to the processor,for adding a link with the second multi-directional still picture to thefirst multi-directional still picture and adding a link with the firstmulti-directional still picture to the second multi-directional stillpicture. The processor, the interface, the comparator, the assemblerand/or other elements of the device or system for detecting links amongmulti-directional still pictures may include any features andfunctionalities of Processor 11, Maker 920, Multi-directional PicturesRepository 115, and/or other disclosed elements. The device or systemmay also include any functionalities or steps of any disclosed methodssuch as, for example, method 3300. For example, Maker 920 may beimplemented on Processor 11 and it may read still pictures or referencesthereto, any data structures (i.e. multi-directional still pictures,mazes, sequences, etc.) and/or other elements from Multi-directionalPictures Repository 115. Comparator may be implemented on Processor 11and it may perform the described picture processing to find stillpictures of any multi-directional still pictures that may be within aline of sight. Assembler may be implemented on Processor 11 and it mayadd links to or modify links of multi-directional still pictures whosestill pictures are found to be within a line of sight. Assembler mayalso store the still pictures or references thereto, any data structures(i.e. multi-directional still pictures, mazes, sequences, etc.) and/orother elements in Multi-directional Pictures Repository 115. Comparatorand assembler may be included in Maker 920, they may be separateprograms implemented on Processor 11, they may be hardware components orseparate processors dedicated to their assigned functionalities, or acombination thereof.

Referring to FIG. 28, the illustration shows an embodiment of a method2200 for generating a collection of Multi-directional Still Pictures 200representing an object. The steps of this exemplary method may thereforebe used by a user on a computing device operating an interface for MDPUnit 100 to enable a user to generate Multi-directional Still Pictures200 in a user-friendly process. One of ordinary skill in art willunderstand that some or all steps of this method may be reordered, andthat other additional steps may be included as needed, or some of thedisclosed ones may be excluded, or a combination thereof may be utilizedin alternate embodiments. Some or all steps of this method may similarlybe utilized with Multi-directional Motion Pictures 400 (later described)for generating a collection of Multi-directional Motion Pictures 400representing an object. In some embodiments, the steps of this methodmay be used in combination with the steps of methods 3200 for automaticdetecting Still Pictures 210 a, 210 b, 210 c, 210 d, etc. from acollection of digital pictures and/or method 3300 for automaticdetection of Multi-directional Still Picture Links 220 a, 220 b, 220 c,220 d, etc. in a collection of Multi-directional Still Pictures 200.

At step 2205, one or more still pictures each depicting a differentlydirected view from a first location of plurality locations of arepresented object are received by a computing device. MDP Unit 100 mayenable interactive visual representation of objects usingmulti-directional still pictures positioned in locations of therepresented object. Any locations may be used to represent the object.In one example, steps (i.e. every two feet, etc.) in a park's walkwaysmay be used as locations to simulate a user's stepping through the park.In another example, evenly spaced points (i.e. points in the center ofevery square yard, etc.) in a building's interior may be used aslocations to simulate a user's stepping through the building. In oneexample, the first location may be a logical starting point such as nearan entrance into a park or near a door to a building. In anotherexample, the first location may be any location of the representedobject. A user may capture, using a digital camera for example, one ormore still pictures each including a differently directed view from alocation such as the first location and the one or more still picturesmay be received by a computing device from the digital camera. Thedigital camera may be built into a computing device running an instanceof MDP Unit 100 in which case the captured one or more still picturesmay be received from the digital camera through an internal connectionor storage means such as, for example, bus, memory, hard drive, or anyother direct or operative internal connection or storage means. In oneexample, the digital camera may store a still picture in a file on ahard drive of the computing or mobile device where an instance of MDPUnit 100 may access the file to facilitate the functionalities describedherein. The digital camera may be separate from the computing devicerunning an instance of MDP Unit 100 in which case the captured one ormore still pictures may be received from the digital camera throughexternal connection or storage means such as, for example, bus, flashdrive, network, or any other direct or operative external connection orstorage means. In one example, the digital camera may store a stillpicture in a file on a network to which the computing device may connectand on which an instance of MDP Unit 100 may access the file tofacilitate the functionalities described herein. The user may captureviews of any directions (forward, backward, right, left, up, down,diagonal, etc.) from a location such as the first location.

At step 2210, a first multi-directional still picture is generated toinclude the one or more still pictures from the first location. Eachlocation of the represented object such as the first location may beassociated with a multi-directional still picture that may comprise oneor more differently directed still pictures and one or more links toother multi-directional still pictures. In some embodiments, amulti-directional still picture may include a data structure storing oneor more differently directed still pictures and one or more links toother multi-directional still pictures. Multi-directional still picturesmay enable the user to view all views (i.e. forward, backward, right,left, up, down, diagonal, etc.) from all locations of the representedobject and enable the user to move among the multi-directional stillpictures simulating motion through the represented object. In someembodiments, multi-directional still pictures may be ordered to includea first multi-directional still picture, followed by a secondmulti-directional still picture, which may also be followed by a thirdmulti-directional still picture, and so on, to complete a sequence. Inother embodiments, multi-directional still pictures may be organized ina maze that may correspond to a shape of the represented object. In yetother embodiments, multi-directional still pictures may be interlinkedin any conceivable manner without using any intermediary or supportingdata structures such as the sequence and/or maze. Generally,multi-directional still pictures may correspond to a shape of arepresented object. Since there are no other multi-directional stillpictures to which it can be linked, the first multi-directional stillpicture may be generated to include the still pictures captured from thefirst location. In some embodiments, picture processing may beimplemented to automatically detect still pictures with overlappingfields of view from a specific location of a represented object such asthe first location, and to add the detected still pictures tomulti-directional still picture representing the location. Generatingmay include any action or operation by or for Maker 920.

At step 2215, one or more still pictures each depicting a differentlydirected view from a second location of the represented object arereceived by the computing device. Step 2215 may include any action oroperation described in step 2205 as applicable.

At step 2220, a second multi-directional still picture is generated toinclude the one or more still pictures from the second location and toinclude a link with the first multi-directional still picture, the firstlocation being adjacent to the second location. Step 2220 may includeany action or operation described in Step 2210 as applicable.Additionally, a link with a prior multi-directional still picture suchas the first multi-directional still picture may be included within acurrent multi-directional still picture such as the secondmulti-directional still picture. The link may enable the user to movefrom the second multi-directional still picture to firstmulti-directional still picture this way simulating motion through therepresented object. In some embodiments, picture processing may beimplemented to automatically detect a link between multi-directionalstill pictures and to add the detected link to a multi-directional stillpicture.

At step 2225, a link with the second multi-directional still picture isadded to the first multi-directional still picture. In addition to thepreviously included still pictures, a link with a currentmulti-directional still picture such as the second multi-directionalstill picture may be added to a prior multi-directional still picturesuch as the first multi-directional still picture. The link may enablethe user to move from the first multi-directional still picture to thesecond multi-directional still picture this way simulating motionthrough the represented object. Adding a link may include any action oroperation by or for Maker 920.

At step 2230, steps 2215-2225 are repeated to generate and link anyadditional multi-directional still pictures. Steps 2215-2225 may beperformed repeatedly to generate any additional multi-directional stillpictures in user's discretion. Any number of multi-directional stillpictures associated with any locations may be generated. In someembodiments, any number of multi-directional still pictures associatedwith any locations may be generated to cover the entire representedobject. In other embodiments, any number of multi-directional stillpictures associated with any locations may be generated to cover aportion of the represented object.

At step 2235, a new link with another multi-directional still picture isadded to any of the multi-directional still pictures. MDP Unit 100 mayinclude a means through which the user may access any of themulti-directional still pictures and add to it an additional link withany other multi-directional still picture. In some embodiments in whichmulti-directional still picture may include a data structure, such meansmay include an editor or graphical user interface configured to ask theuser to indicate a link with a specific multi-directional still pictureand to add a new data field including the new link to the datastructure. In other embodiments in which multi-directional still picturemay include a data structure, such means may use picture processing toautomatically detect a new link with a multi-directional still pictureand add a new data field including the new link to the data structure.Adding a link may include any action or operation by or for Maker 920.

At step 2240, a link of any of the multi-directional still pictures ismodified. MDP Unit 100 may include a means through which the user mayaccess any of the multi-directional still pictures and modify any of itslinks. In some embodiments in which multi-directional still picture mayinclude a data structure, such means may include an editor or graphicaluser interface configured to read a data field including a link, ask theuser to indicate a link with another multi-directional still picture,and replace the previous link with the updated link in the data field.In some embodiments in which multi-directional still picture may includea data structure, such means may read a data field including a link, usepicture processing to automatically detect a link with anothermulti-directional still picture, and replace the previous link with theupdated link in the data field. Modifying may include any action oroperation by or for Maker 920,

At step 2245, one or both of step 2235 and step 2240 are repeated to addor modify a link of any multi-directional still pictures. Step 2245 mayinclude any action or operation described in step 2235 and/or step 2240as applicable. Any number of links among multi-directional stillpictures may be used in user's discretion. Such links may connectmulti-directional still pictures in any conceivable direction (i.e.forward, backward, right, left, up, down, diagonal, etc.). The links mayenable the user to move among multi-directional still pictures this waysimulating motion through the represented object. In one example, linksmay connect multi-directional still pictures associated with locations(i.e. steps, etc.) on a park's walkways. In another example, links mayconnect multi-directional still pictures associated with evenly spacedlocations (i.e. locations in the center of every square yard, etc.) in aroom.

At step 2250, the multi-directional still pictures, their stillpictures, and their links, are stored in memory of the computing device.Multi-directional still pictures may be stored, maintained, and/ororganized in various arrangements including files, data structures,objects, tables, databases, DBMSs, memory structures, and/or othersimilar arrangements and/or data repositories. In some embodiments,still pictures or references thereto, links, and/or any data structures(i.e. multi-directional still pictures, mazes, sequences, etc.) may bestored in a Multi-directional Pictures Repository 115. In someembodiments, Multi-directional Pictures Repository 115 may include afile, a data structure, and/or other similar digital data repository. Inother embodiments, Multi-directional Pictures Repository 115 may includea database management system (DBMS), a database, a system, a process,and/or other similar digital data repository. In further embodiments,Multi-directional Pictures Repository 115 may be embedded within aninstance of MDP Unit 100 (i.e. hard coded in the Core Program 220). Inyet further embodiments, Multi-directional Pictures Repository 115 mayinclude a separate file (i.e. object file, etc.), a separate datastructure, a separate DBMS, a separate database, a separate system, aseparate process, and/or other separate digital data repository orsystem for each of the still pictures or references thereto, for each ofthe links, and/or for each of the data structures (i.e.multi-directional still pictures, mazes, sequences, etc.). In yetfurther embodiments, Multi-directional Pictures Repository 115 mayinclude a collection of definitions of pictures or references thereto,links, and/or any data structures (i.e. multi-directional still ormotion pictures, mazes, sequences, etc.) that may be embedded in otherfiles or programs. Storing may include any action or operation by or forMaker 920.

Embodiments involving any still picture or multi-directional stillpicture functionalities may include any features or embodimentsinvolving any motion picture or multi-directional motion picturefunctionalities as later described.

In some aspects, the teaching presented by the disclosure may beimplemented in a device or system for generating multi-directional stillpictures. The device or system may include a processor and an interface,coupled to the processor, for receiving one or more still pictures eachstill picture depicting a differently directed view from a firstlocation of plurality locations of a represented object. The device orsystem may further include an assembler, coupled to the processor, forgenerating a first multi-directional still picture to include the one ormore still pictures from the first location. The interface may furtherbe configured to receive one or more still pictures each depicting adifferently directed view from a second location of the representedobject, and the assembler may further be configured to: generate asecond multi-directional still picture to include the one or more stillpictures from the second location and to include a link with the firstmulti-directional still picture, the first location being adjacent tothe second location, and add a link with the second multi-directionalstill picture to the first multi-directional still picture. Theprocessor, the interface, the assembler and/or other elements of thedevice or system for generating multi-directional still pictures mayinclude any features and functionalities of Processor 11, Maker 920,Multi-directional Pictures Repository 115, Input Interface 140, Keyboard150 or any other input device, and/or other disclosed elements. Thedevice or system may also include any functionalities or steps of anydisclosed methods such as, for example, method 2200. For example, aninput device such as a digital camera may provide a means for capturingstill pictures from locations of a represented object. Input Interface140 may process the captured still pictures for use by Maker 920 orother disclosed elements. Assembler may be implemented on Processor 11and it may organize and/or store the captured still pictures orreferences thereto, any data structures (i.e. multi-directional stillpictures, mazes, sequences, etc.) and/or other elements inMulti-directional Pictures Repository 115. Assembler may be included inMaker 920, it may be a separate program implemented on Processor 11, itmay be a hardware component or a separate processor dedicated to itsassigned functionalities, or a combination thereof.

Referring to FIG. 29, in some aspects, the teaching presented by thedisclosure may be implemented to include streams of pictures (i.e.motion pictures, etc.). In some embodiments, such stream of pictures mayinclude pictures (i.e. frames) such as the previously described ForwardStill Pictures 210 a, Backward Still Pictures 210 b, Right StillPictures 210 c, Left Still Pictures 210 d, and/or any additional StillPictures. Such pictures (i.e. frames) in a stream of pictures may betime stamped or time sequenced. In some aspects, each still picture in astream of time stamped still pictures may include or be associated withan incremental time stamp indicating its position in a time continuum.In other aspects, each still picture in a stream of time stamped stillpictures may not include or be associated with a time stamp or anyreference to its position in a time continuum. In yet other aspects,each still picture in a stream of time stamped still pictures may besequentially ordered indicating its sequential position in the stream.In yet other aspects, a time stamp of each still picture in a stream oftime stamped still pictures may be determined or computed using aformula such as a frame rate formula known in art. A frame rate formulamay indicate a number of pictures (i.e. frames) to be processed in aperiod of time (i.e. second, etc.). A frame rate formula may include aconstant or variable frame rate. Embodiments including streams ofpictures may find applicability in any environment where an object mayneed to be represented over a period of time. Some examples of suchenvironments may include representations of objects that change overtime or objects that may include an action scene (i.e. other movingobjects or persons, etc.). Some embodiments that may utilize streams ofpictures may be included in entertainment videos (i.e. Hollywood movies,etc.), documentaries, sporting events videos, learning videos,simulations, and other similar materials.

MDP Unit 100 may enable a user to visually experience an object overtime. In some embodiments, MDP Unit 100 may be implemented to include(1) Multi-directional Motion Pictures 400, and/or (2) a means to moveamong Multi-directional Motion Pictures 400 in a time continuum. Inother embodiments, MDP Unit 100 may be implemented to include (1) a Maze300 and/or Multi-directional Picture Sequences 350 that may compriseMulti-directional Motion Pictures 400, and/or (2) a means to move amongMulti-directional Motion Pictures 400 in a time continuum. Otheradditional elements may be included as needed, or some of the disclosedones may be excluded, or a combination thereof may be utilized inalternate embodiments.

Multi-directional Motion Picture 400 may comprise any software or acombination of hardware and software. Multi-directional Motion Picture400 may include functions and algorithms for storing one or more MotionPictures 410 or references thereto, and/or one or more Multi-directionalMotion Picture Links 420. In some embodiments, a Multi-directionalMotion Picture 400 may include functions and algorithms for storing oneor more Motion Pictures 410 or references thereto, one or moreMulti-directional Motion Picture Links 420, and/or Orientation 405. Inother embodiments, a Multi-directional Motion Picture 400 may includefunctions and algorithms for storing a data structure whose data fieldsmay include one or more Motion Pictures 410 or references thereto, oneor more Multi-directional Motion Picture Links 420, and/or Orientation405. In one example, a Multi-directional Motion Picture 400 may includea data structure comprising nine data fields: (1) Forward Motion Picture410 a, (2) Backward Motion Picture 410 b, (3) Right Motion Picture 410c, (4) Left Motion Picture 410 d, (5) Forward Multi-directional MotionPicture Link 420 a, (6) Backward Multi-directional Motion Picture Link420 b, (7) Right Multi-directional Motion Picture Link 420 c, (8) LeftMulti-directional Motion Picture Link 420 d, and/or (9) Orientation 405.In general, MDP Unit 100 may enable a user to view all conceivable viewsor angles in a Multi-directional Motion Picture 400, and/or may enable auser to move among Multi-directional Motion Pictures 400 in allconceivable directions. As such, additional Motion Pictures may beincluded, but are not limited to, up Motion Picture, down MotionPicture, diagonal Motion Picture, angular Motion Picture, behind MotionPicture, turn around Motion Picture, reverse Motion Picture, obliqueMotion Picture (i.e. circular, elliptical, etc.), and others. Also,additional Multi-directional Motion Picture Links may be included, butare not limited to, up link, down link, diagonal link, angular link,behind link, turn around link, reverse link, oblique link (i.e.circular, elliptical, etc.), and others. Multi-directional MotionPicture 400 may include some or all the features and embodiments of thepreviously described Multi-directional Still Picture 200. Also,Multi-directional Motion Picture 400 and/or any of its embodimentsand/or elements may include or be combined with some or all the featuresand embodiments of any of the previously described elements such as, forexample, Multi-directional Still Picture 200, Still Picture 210 a, 210b, 210 c, 210 d, etc., Multi-directional Still Picture Link 220 a, 220b, 220 c, 220 d, etc., Orientation 205, Web Browser 800, Web Page 810,Map 820, Window 830, Picture Display 840, Picture Arrow 860 a, 860 b,860 c, 860 d, etc., Direction Arrow 850 a, 850 b, 850 c, 850 d, etc.,Orientation Pointer 870, Multi-directional Still Picture Angle 230 a,230 b, 230 c, 230 d, etc., Multi-directional Still Picture Distance 240a, 240 b, 240 c, 240 d, etc., and/or any other features or elements.

Motion Picture 410 a, 410 b, 410 c, 410 d, etc. may comprise anysoftware or a combination of hardware and software, Motion Picture 410a, 410 b, 410 c, 410 d, etc. may include functions and algorithms forstoring a stream of digital pictures or reference thereto. While MotionPictures 410 may be referred to or illustrated as Motion Pictures 410a-d, one of ordinary skill in art will understand that they may indeedinclude any number of Motion Pictures 410 a-n. In some embodiments, aMotion Picture 410 a, 410 b, 410 c, 410 d, etc. may include functionsand algorithms for storing a data structure whose data field may includea stream of digital pictures or reference thereto. In general, a MotionPicture 410 a, 410 b, 410 c, 410 d, etc. may include a collection oftime stamped or time sequenced still pictures (i.e. frames, etc.) suchas, for example, Still Pictures 210 a, 210 b, 210 c, 210 d, etc. SuchMotion Picture 410 a, 410 b, 410 c, 410 d, etc. may include digitalbitmaps, JPEG pictures, GIF pictures, TIFF pictures, PDF pictures, anycomputer-generated pictures (i.e. views of a 3D game or CAD/CAMapplication captured as digital pictures, etc.), digital video such asMPEG, AVI, FLV, MOV, RM, SWF, WMV, DivX etc., any other digitalpictures, video or visual content, or an outside application or processof any type that may generate digital pictures, video or other visualcontent. In some aspects, a Motion Picture 410 a, 410 b, 410 c, 410 d,etc. may include a reference or pointer to a stream of digital picturesor other visual content. In some embodiments, a user may create a MotionPicture 410 a, 410 b, 410 c, 410 d, etc. by utilizing a digital or videocamera, a Motion Picture Camera 490 a, 490 b, 490 c, 490 d, etc., and/orany other motion picture taking equipment. Such motion picture takingequipment may be combined with an apparatus specially constructed formotion picture creation such as a tripod, rails, wheels, slidablecomponents, robotic arm, and/or other such apparatuses or devices. Insome embodiments, specific pictures (i.e. frames in equal intervals suchas 0.04 seconds, etc.) of a stream of pictures from motion picturetaking equipment may be captured as a Motion Picture 410 a, 410 b, 410c, 410 d, etc. In other embodiments, all pictures (i.e. frames) of astream of pictures from motion picture taking equipment may be capturedas a Motion Picture 410 a, 410 b, 410 c, 410 d, etc. In yet otherembodiments, a user may create a Motion Picture 410 a, 410 b, 410 c, 410d, etc. by capturing views (i.e. pictures, frames, etc.) of a computergenerated object (i.e. 3D game, CAD/CAM application, etc.) throughprocessing. In some embodiments, a Motion Picture 410 a, 410 b, 410 c,410 d, etc. may be stored in a digital file in Memory 180 or PhysicalStorage Medium 181 of a Computing Device 70. As such, Core Program 110may access and utilize the stored Motion Pictures 410 a, 410 b, 410 c,410 d, etc. to implement the features and functionalities describedherein. In other embodiments, a Motion Picture 410 a, 410 b, 410 c, 410d, etc. may include a live feed that may not be stored. As such, CoreProgram 110 may receive and utilize the live feeds of Motion Pictures410 a, 410 b, 410 c, 410 d, etc. to implement the features andfunctionalities described herein. Motion Pictures 410 a, 410 b, 410 c,410 d, etc. may include some or all the features and embodiments of thepreviously described Still Pictures 210 a, 210 b, 210 c, 210 d, etc.

A Multi-directional Motion Picture Link 420 a, 420 b, 420 c, 420 d, etc.may comprise any software or a combination of hardware and software.Multi-directional Motion Picture Link 420 a, 420 b, 420 c, 420 d, etc.may include functions and algorithms for storing a reference or pointerto a Multi-directional Motion Picture 400. While Multi-directionalMotion Picture Links 410 may be referred to or illustrated asMulti-directional Motion Picture Links 410 a-d, one of ordinary skill inart will understand that they may indeed include any number ofMulti-directional Motion Picture Links 410 a-n. A Multi-directionalMotion Picture Link 420 a, 420 b, 420 c, 420 d, etc. may includefunctions and algorithms for storing a data structure whose data fieldmay include a reference or pointer to a Multi-directional Motion Picture400. In some embodiments, a Multi-directional Motion Picture Link 420 a,420 b, 420 c, 420 d, etc. may be undefined, non-existent or emptyindicating no reference or pointer to a Multi-directional Motion Picture400. In other embodiments, a Multi-directional Motion Picture Link 420a, 420 b, 420 c, 420 d, etc. may include a reference or pointer to anoutside application or process. A Multi-directional Motion Picture Link420 a, 420 b, 420 c, 420 d, etc. may be defined or created automaticallyby Core Program 110 or by a user through a means such as a graphicaluser interface. A Multi-directional Motion Picture Link 420 a, 420 b,420 c, 420 d, etc. may also be modified by Core Program 110 or by a userthrough a means such as a graphical user interface. Multi-directionalMotion Picture Links 420 a, 420 b, 420 c, 420 d, etc. may include someor all the features and embodiments of the previously describedMulti-directional Still Picture Links 220 a, 220 b, 220 c, 220 d, etc.

Orientation 405 may comprise any software or a combination of hardwareand software. Orientation 405 may include functions and algorithms forstoring orientation of a Multi-directional Motion Picture 400. In someembodiments, Orientation 405 may include functions and algorithms forstoring a data structure whose data field may include orientation of aMulti-directional Motion Picture 400. In some embodiments, Orientation405 may be associated with a direction of a Motion Picture 410 a, 410 b,410 c, 410 d, etc., with a direction of a Multi-directional MotionPicture Link 420 a, 420 b, 420 c, 420 d, etc. and/or with any otherdirection as previously described. In some aspects, Orientation 405 mayinclude absolute or relative orientation as previously described.Orientation 405 may include some or all the features and embodiments ofthe previously described Orientation 205.

Referring to FIG. 30, an embodiment of MDP Unit 100 implemented torepresent an object such as, for example, interior of a building with anaction scene is illustrated. As such, MDP Unit 100 may enable a user tovisually experience interior of a building with an action scene whereevery step may contain a view of what a user would see stepping throughinterior of the building in a time continuum. In some embodiments,Multi-directional Motion Pictures 400 may be applied in the interior ofthe building where Multi-directional Motion Pictures 400 may beinterconnected in such an arrangement to correspond to a shape (i.e.context, etc.) of the interior of the building. In other embodiments,MDP Unit 100 may be implemented to include (1) Multi-directional MotionPictures 400 arranged to correspond to a shape of a represented object(i.e. interior of a building for example, etc.), and/or (2) a means fora user to move among Multi-directional Motion Pictures 400 in a timecontinuum. In yet other embodiments, MDP Unit 100 may be implemented toinclude (1) Multi-directional Picture Sequences 350 that may compriseMulti-directional Motion Pictures 400 representing paths (i.e.straight-lined paths, curved paths, etc.) in a represented object (i.e.interior of a building for example, etc.), and/or (2) a means for a userto connect with Multi-directional Picture Sequences 350 and/or moveamong Multi-directional Motion Pictures 400 in a time continuum. In yetother embodiments, MDP Unit 100 may be implemented to include (1) a Maze300 that may comprise Multi-directional Motion Pictures 400 and/orMulti-directional Picture Sequences 350, and/or (2) a means for a userto connect with Multi-directional Picture Sequences 350 and/orMulti-directional Motion Pictures 400 in a time continuum. Otheradditional elements may be included as needed, or some of the disclosedones may be excluded, or a combination thereof may be utilized inalternate embodiments. In one example, Multi-directional Motion Pictures400 may be positioned in the center of every full square yard of arepresented room with an action scene. The action scene may include aman and a woman standing at a door of a building greeting each otherwith a hand shake in the Action Location 76 a, the man and womanconversing and walking away from the door toward the middle of thebuilding in the Action Location 76 b, and man sitting on a chair whilethe woman is talking with him in the corner of the building in theAction Location 76 c. In general, an action scene may include actionfigures and/or objects (i.e. man, woman, chair, etc. in this example),explicit Action Locations 76 a, 76 b, 76 c and implied action locationsin between the explicit Action Locations 76 a, 76 b, 76 c (i.e.locations where man and woman moved and/or where action occurred, etc.),and/or any other items relevant to the action scene or the representedobject. MDP Unit 100 may enable a user to view all views (i.e. forward,backward, right, left, up, down, diagonal, angular, etc.) from alllocations (Multi-directional Motion Pictures 400) of a representedobject (i.e. room in this example, etc.) including an action scene in atime continuum and move among Multi-directional Motion Pictures 400simulating motion through the represented object including an actionscene in a time continuum.

Referring to FIG. 31, the illustration shows an embodiment of a method2300 for using a collection of Multi-directional Motion Pictures 400representing an object. The steps of this exemplary method may thereforebe used by a user on a computing device operating an interface for MDPUnit 100 to enable the user to view all views (i.e. forward, backward,right, left, up, down, diagonal, etc.) from all locations of therepresented object over time and enable the user to move among themulti-directional motion pictures this way simulating motion through therepresented object over time. One of ordinary skill in art willunderstand that some or all steps of this method may be reordered, andthat other additional steps may be included as needed, or some of thedisclosed ones may be excluded, or a combination thereof may be utilizedin alternate embodiments. Some or all steps of this method may similarlybe implemented for using a collection of Multi-directional StillPictures 200 representing an object.

At step 2305, a collection of multi-directional motion pictures eachassociated with a location of a represented object and including one ormore differently directed streams of time stamped still pictures and oneor more links to other one or more multi-directional motion pictures ismaintained in memory of a computing device. MDP Unit 100 may enableinteractive visual representation of objects over time usingmulti-directional motion pictures associated with locations of arepresented object. Any locations may be used to represent the object.In one example, steps (i.e. every two feet, etc.) in a park's walkwaysmay be used as the locations to simulate a user's stepping through thepark. In another example, evenly spaced points (i.e. points in thecenter of every square yard, etc.) in a building's interior may be usedas the locations to simulate a user's stepping through the building. Insome embodiments, a multi-directional motion picture may include a datastructure storing one or more differently directed streams of timestamped still pictures (i.e. motion picture, video, etc.) and one ormore links to other multi-directional motion pictures. In someembodiments, multi-directional motion pictures may be ordered to includea first multi-directional motion picture, followed by a secondmulti-directional motion picture, which may also be followed by a thirdmulti-directional motion picture, and so on, to complete a sequence. Inother embodiments, multi-directional motion pictures may be arranged ina maze that may correspond to a shape of the represented object. In yetother embodiments, multi-directional motion pictures may be interlinkedin any conceivable manner without using any intermediary or supportingdata structures such as the sequence and/or maze. Generally,multi-directional motion pictures may correspond to a shape of arepresented object. In some embodiments, any number of multi-directionalmotion pictures including differently directed (i.e. forward, backward,right, left, up, down, diagonal, etc.) streams of time stamped stillpictures (i.e. motion picture, video, etc.) may be utilized to cover theentire represented object. In other embodiments, any number ofmulti-directional motion pictures including differently directed (i.e.forward, backward, right, left, up, down, diagonal, etc.) streams oftime stamped still pictures (i.e. motion picture, video, etc.) may beutilized to cover a portion of the represented object. Also, any numberof links among multi-directional motion pictures may be used. Such linksmay connect multi-directional motion pictures in any conceivabledirection (i.e. forward, backward, right, left, up, down, diagonal,etc.). The links may enable the user to move among multi-directionalmotion pictures this way simulating motion through the representedobject in a time continuum.

At step 2310, a first stream of time stamped still pictures depicting afirst view from a location associated with a first multi-directionalmotion picture is displayed on the computing device. The user may viewon the display of the computing device a stream of time stamped stillpictures (i.e. motion picture, video, etc.) such as the first stream oftime stamped still pictures of the first multi-directional motionpicture. In one example, the first location may be a logical startingpoint such as a location near an entrance into a park or near a door ofa building in which case the first stream of time stamped still pictures(i.e. motion picture, video, etc.) may include a view from this logicalstarting location (i.e. a view of what a pedestrian would see entering agate of the park, etc.). In another example, the first location may beany location of the represented object. In some embodiments, a stream oftime stamped still pictures (i.e. motion picture, video, etc.) such asthe first stream of time stamped still pictures of the firstmulti-directional motion picture may be obtained from a file, a datastructure, an object, and/or other similar digital data repository. Inother embodiments, a stream of time stamped still pictures (i.e. motionpicture, video, etc.) may be obtained from a database management system(DBMS), a database, a system, a process, and/or other similar digitaldata repository. In further embodiments, a stream of time stamped stillpictures (i.e. motion picture, video, etc.) may be embedded within aninstance of MDP Unit 100 (i.e. hard coded in the Core Program 110). Inyet further embodiments, a stream of time stamped still pictures (i.e.motion picture, video, etc.) may be obtained from a separate file (i.e.object file, etc.), a separate data structure, a separate DBMS, aseparate database, a separate system, a separate process, and/or otherseparate digital data repository or system for each of the streams ofstill pictures or references thereto. In yet further embodiments, astream of time stamped still pictures (i.e. motion picture, video, etc.)may be obtained from a collection of definitions of streams of timestamped still pictures or references thereto embedded in other files orprograms. In some embodiments, a stream of time stamped still pictures(i.e. motion picture, video, etc.) may be obtained from a live feed of amotion picture camera or any other motion picture talking equipment. Insome embodiments, a stream of time stamped still pictures (i.e. motionpicture, video, etc.) may be obtained from a Multi-directional PicturesRepository 115 that may further include a file (i.e. object file, etc.),a data structure, a DBMS, a database, a system, a process, and/or otherseparate digital data repository or system. In some embodiments, pictureprocessing may be implemented to insert or overlay a picture of anavatar into/onto a stream of time stamped still pictures such as thefirst stream of time stamped still pictures. Displaying may include anyaction or operation by or for a Picture Display 840.

At step 2315, the computing device receives a selection of a secondstream of time stamped still pictures of the first multi-directionalmotion picture. In some embodiments, MDP Unit 100 may include a meanssuch as a graphical user interface (GUI) configured to show on thedisplay of the computing device graphical pointers each associated witha specific stream of time stamped still pictures (i.e. motion picture,video, etc.) and/or specific multi-directional motion picture link of amulti-directional motion picture such as the first multi-directionalmotion picture. In one example, a pointer to each of the one or morestreams of time stamped still pictures of the first multi-directionalmotion picture and a pointer to each of the one or more links of thefirst multi-directional motion picture may be displayed on the computingdevice for selection by a user. In some embodiments, a pointer in a GUImay include an arrow, a triangle, a push button (i.e. web form pushbutton, etc.), a picture, and/or other such directional signs or indiciaindicating a direction of its associated stream of time stamped stillpictures (i.e. motion picture, video, etc.) and/or multi-directionalmotion picture link. In one example, an upward pointed triangle may beassociated with a forward stream of time stamped still pictures (i.e.motion picture, video, etc.) and/or an upward pointed arrow may beassociated with a forward multi-directional motion picture link. Inother embodiments, certain areas on the displayed stream of time stampedstill pictures may be associated with other streams of time stampedstill pictures (i.e. motion picture, video, etc.) and/ormulti-directional motion picture links in which case pointers may beused as secondary input means or not used at all. In one example, auser's clicking on any part of a park's forward walkway depicted in astream of time stamped still pictures (i.e. motion picture, video, etc.)may execute a forward multi-directional motion picture link withoutselecting its associated pointer. A pointer may be selected through anyinternal or external input means of the computing device such askeyboard, mouse, touch screen, control wheel, remote control, joystick,microphone, and/or other similar input means. User may select a pointerby pressing keyboard keys, by touching touch screen buttons, by clickingmouse buttons, by pressing game controller buttons, by pressing joystickbuttons, by pressing remote control buttons, by sliding a control wheel(i.e. iPod control wheel, etc.), or by using other directional meansassociated with particular pointer. Upon user's selection, the selectedpointer may be received by an interface for MDP Unit 100. The selectedpointer may be received by the user's computing device or by any othercomputing device in general. The selected pointer may be received by anycomponent of MDP Unit 100. A pointer may include any action or operationby or for a Direction Arrow 850 a, 850 b, 850 c, 850 d, etc. and/orPicture Arrow 860 a, 860 b, 860 c, 860 d, etc.

At step 2320, a time stamp of the currently displayed still picture isdetermined. Each still picture (i.e. frame) in a stream of time stampedstill pictures (i.e. motion picture, video, etc.) may include or beassociated with a time stamp. In some embodiments, multi-directionalmotion picture may comprise a data structure whose data fields mayinclude a time stamp of each of the still pictures (i.e. frames) of astream of time stamped still pictures (i.e. motion picture, video,etc.). In other embodiments, a stream of time stamped still pictures mayinclude or store time stamps of its own still pictures (i.e. frames)internally. In yet other embodiments, a stream of time stamped stillpictures (i.e. motion picture, video, etc.) may include still pictures(i.e. frames) each stored in its own file where time stamp may be storedin the name of the file. In yet other embodiments, time stamp of eachstill picture in a stream of time stamped still pictures may bedetermined or computed using a formula such as a frame rate formula.Time stamp of the currently displayed still picture may be determined byreading the time stamp included or associated with a currently displayedstill picture (i.e. frame) of a stream of time stamped still pictures.Time stamp of the currently displayed still picture may also bedetermined by using a formula to compute the time stamp of a currentlydisplayed still picture (i.e. frame) of a stream of time stamped stillpictures.

At step 2325, the second stream of time stamped still pictures depictinga second view from the location associated with the firstmulti-directional motion picture is displayed on the computing devicestarting with a still picture having an incrementally subsequent timestamp from the time stamp of the currently displayed still picture. Whenuser selects a pointer associated with a stream of time stamped stillpictures (i.e. motion picture, video, etc.), the associated stream oftime stamped still pictures may be displayed. Time stamp may be utilizedfor each of the still pictures (i.e. frames) within each of the streamsof time stamped still pictures to enable coordinated transition amongmulti-directional motion pictures in a time continuum. As such, when auser chooses to view another stream of time stamped still pictures, CoreProgram 110 may look for appropriate still picture (i.e. frame) havingan incrementally subsequent time stamp within a destination stream oftime stamped still pictures (i.e. motion picture, video, etc.). A streamof still pictures (i.e. frames) within the destination stream of timestamped still pictures may be displayed on the computing device startingwith a still picture (i.e. frame) having an incrementally subsequenttime stamp. Displaying may include any action or operation by or for aPicture Display 840.

At step 2330, steps 2315-2325 are repeated for any additional streams oftime stamped still pictures of the first multi-directional motionpicture. Steps 2315-2325 may be performed repeatedly to display anysubsequent streams of time stamped still pictures (i.e. motion picture,video, etc.) of a multi-directional motion picture such as the firstmulti-directional motion picture. Step 2330 may therefore be performedto enable the user to view all views (i.e. forward, backward, right,left, up, down, diagonal, etc.) from a location associated with amulti-directional motion picture such as the first multi-directionalmotion picture in a time continuum.

At step 2335, the computing device receives a selection of a first linkof the first multi-directional motion picture, the first link associatedwith a second multi-directional motion picture. Step 2335 may includeany action or operation described in step 2315 as applicable.

At step 2340, a time stamp of the currently displayed still picture isdetermined. Step 2340 may include any action or operation described instep 2320 as applicable.

At step 2345, a first stream of time stamped still pictures depicting afirst view from a location associated with the second multi-directionalmotion picture is displayed on the computing device starting with astill picture having an incrementally subsequent time stamp from thetime stamp of the currently displayed still picture. Step 2345 mayinclude any action or operation described in step 2325 as applicable. Insome embodiments, a pointer to each of the one or more streams of timestamped still pictures of the second multi-directional motion pictureand a pointer to each of the one or more links of the secondmulti-directional motion picture may be displayed on the computingdevice for selection by the user.

At step 2350, steps 2315-2345 are repeated for any additional streams oftime stamped still pictures or multi-directional motion pictures. Steps2315-2345 may be performed repeatedly to display any streams of timestamped still pictures (i.e. motion pictures, videos, etc.) of anymulti-directional motion pictures and/or to move among anymulti-directional motion pictures.

In some aspects, the teaching presented by the disclosure may beimplemented in a device or system for using multi-directional motionpictures. The device or system may include a processor and an interface,coupled to the processor, for receiving a collection ofmulti-directional motion pictures each multi-directional motion pictureassociated with a location of a represented object and including one ormore differently directed streams of time stamped still pictures and oneor more links to other one or more multi-directional motion pictures.The device or system may further include a display, coupled to theprocessor, for rendering a first stream of time stamped still picturesof a first multi-directional motion picture. The device or system mayfurther include an input device, coupled to the processor, for receivinga selection of a first link of the first multi-directional motionpicture, the first link associated with a second multi-directionalmotion picture. The device or system may further include a tracker,coupled to the processor, for determining a time stamp of a currentlydisplayed still picture, wherein the processor may be programmed tocause the display to render a first stream of time stamped stillpictures of the second multi-directional motion picture starting with astill picture having an incrementally subsequent time stamp from thetime stamp of the currently displayed still picture. The input devicemay further be configured to receive a selection of a second stream oftime stamped still pictures of the second multi-directional motionpicture, wherein the tracker may be configured to determine a time stampof a currently displayed still picture, and the processor may further beprogrammed to cause the display to render the second stream of timestamped still pictures of the second multi-directional motion picturestarting with a still picture having an incrementally subsequent timestamp from the time stamp of the currently displayed still picture. Theprocessor, the interface, the display, the input device, the trackerand/or other elements of the device or system for usingmulti-directional motion pictures may include any features andfunctionalities of Processor 11, Core Program 110, Multi-directionalPictures Repository 115, Input Interface 140, Keyboard 150 or any otherinput device, Output Interface 160, Display 170, and/or other disclosedelements. The device or system may also include any functionalities orsteps of any disclosed methods such as, for example, method 2300. Forexample, Keyboard 150 and/or any other input device may provide a meansfor inputting a user's operating instructions on movement through andview of the represented object. Input Interface 140 may process inputevents of Keyboard 150 and/or other input device for use by Core Program110 or other disclosed elements. Core Program 110 may be implemented onProcessor 11 and it may read streams of time stamped still pictures orreferences thereto, any data structures (i.e. multi-directional motionpictures, mazes, sequences, etc.) and/or other elements fromMulti-directional Pictures Repository 115 to obtain appropriate streamsof time stamped still pictures from various locations of a representedobject that may correspond to user's operating instructions. The trackermay be included in Core Program 110, it may be a separate programimplemented on Processor 11, it may be a hardware component or aseparate processor dedicated to its assigned functionalities, or acombination thereof. Output interface 160 may process the streams oftime stamped still pictures from Core Program 110 or other disclosedelements for viewing on Display 170 or other output device. Display 170may render, display or show the streams of time stamped still picturesfrom various locations of the represented object.

Referring to FIG. 32, an embodiment is illustrated in whichMulti-directional Motion Pictures 400 may include coordinates. In someembodiments, a Multi-directional Motion Picture 400 may includecoordinates of a location represented by the Multi-directional MotionPicture 400. In other embodiments, a Multi-directional Motion Picture400 may include a data structure whose data field may includecoordinates of a location represented by the Multi-directional MotionPicture 400. Such coordinates may include x and y coordinates such as,for example, coordinates (5,5) of a Multi-directional Motion Picture 400at Action Location 76 b. Other systems of coordinates may be usedincluding x, y, and z coordinates of 3D objects or spaces, system ofcoordinates using angle and distance from a reference point, system ofcoordinates using intersecting angles from various reference points,and/or any other systems of coordinates.

Referring to FIG. 33, an embodiment is illustrated where MDP Unit 100may include automatic patterns of movement among Multi-directionalMotion Pictures 400. In some embodiments, a pattern of movement amongMulti-directional Motion Pictures 400 may include a sequence ofreferences to Multi-directional Motion Pictures 400 that Core Program110 may execute to simulate motion among Multi-directional MotionPictures 400 as if a user were manually moving among theMulti-directional Motion Pictures 400. In other embodiments, a patternof movement among Multi-directional Motion Pictures 400 may include asequence of Multi-directional Motion Picture 400 coordinates that CoreProgram 110 may execute to simulate motion among Multi-directionalMotion Pictures 400. Any pattern of movement may be utilized includingup, down, diagonal, angular, approaching, retreating, zoom-in, zoom-out,straight, curved, oblique, circular, elliptical, squared, rectangular,triangular, random, and others. A pattern of movement amongMulti-directional Motion Pictures 400 may include absolute or relativepattern of movement. An absolute pattern of movement may move amongMulti-directional Motion Pictures 400 based on a determined sequence ofcoordinates regardless of motion of any action scene or object. In oneexample, an absolute pattern of movement among Multi-directional MotionPictures 400 may include a sequence of coordinates located along theperimeter of a room regardless of where the action scene may be at anyparticular time. Such absolute pattern of movement amongMulti-directional Motion Pictures 400 may include a sequence ofcoordinates such as, for example: (1, 1), (1, 2), (1, 3), (1, 4), (1,5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10), (2, 10), (3, 10), (4, 10),(5, 10), (6, 10), (7, 10), (8, 10), (8, 9), (8, 8), (8, 7), (8, 6), (8,5), (8, 4), (8, 3), (8, 2), (8, 1), (7, 1), (6, 1), (5, 1), (4, 1), (3,1), (2, 1), (1, 1). A relative pattern of movement may enable movementamong Multi-directional Motion Pictures 400 based on a sequence ofcoordinates relative to coordinates of a reference point such as anaction scene. A relative pattern of movement may, therefore, change withmovement of the reference point (i.e. action scene). In one example, arelative pattern of movement among Multi-directional Motion Pictures 400may include a sequence of coordinates located on a conceptual Circle 610having a fixed distance (i.e. two Multi-directional Motion Pictures 400away, 10 feet away, etc.) from the center of an action scene such as,for example, Action Location 76 b. Any distances used from the referencepoint (i.e. action scene, etc.) may be fixed or variable (i.e.changeable by user or automatically, etc.), and measured using absolutemeasurements such as length (i.e. meters, decimeters, millimeters,kilometers, yards, feet, inches, miles, etc.) or relative measurementssuch as a number of Multi-directional Motion Picture 400 distances. Anyof the Multi-directional Motion Pictures 400 on or near Circle 610 maybe used in the relative pattern of movement, and if near Circle 610, afunction to approximate the nearest Multi-directional Motion Pictures400 may be utilized. Such function to approximate the nearestMulti-directional Motion Pictures 400 may calculate differences betweenx and y coordinates of points on Circle 610 and x and y coordinates ofnearby Multi-directional Motion Pictures 400. Multi-directional MotionPictures 400 having coordinates with the smallest differences or thesmallest absolute differences in x and y values from points on Circle610 may be included in the relative pattern of movement associated withor represented by Circle 610. In some embodiments, a band around(inside, outside, or both) Circle 610 may be defined andMulti-directional Motion Pictures 400 having coordinates withdifferences or absolute differences in x and y values from points onCircle 610 that fall within the band may be included in the relativepattern of movement associated with or represented by Circle 610. Insome embodiments, sequence of coordinates of a relative pattern ofmovement may be recalculated to correspond to movement of an actionscene (i.e. follow the movement of the action scene, etc.). In oneexample, an action scene may move from Action Location 76 b withcoordinates (5, 5) to Action Location with coordinates (5, 6). Suchmovement of action scene may cause the center of Circle 610 associatedwith the action scene to also move to the location with coordinates (5,6). In some aspects, coordinates of Multi-directional Motion Pictures400 in the relative pattern of movement associated or represented byCircle 610 may be recalculated to correspond to the movement of thecenter of Circle 610. Such recalculation in this example may includeincreasing by 1 the y value of coordinates of Multi-directional MotionPictures 400 or references thereto of the relative pattern of movement.In other aspects, coordinates of Circle 610 may be recalculated tocorrespond to the movement of the center of Circle 610. Suchrecalculation in this example may include increasing by 1 the y value ofcoordinates of points on Circle 610 associated with or representing therelative pattern of movement. After Circle's 610 recalculation, afunction to approximate new nearest Multi-directional Motion Pictures400 may be utilized as previously described.

Patterns of movement among Multi-directional Motion Pictures 400 mayinclude a designer's preferred patterns (i.e. movie director's preferredcamera patterns, etc.), user recorded or preferred patterns (i.e.patterns that user may have used previously in subject or other MDPapplications), shaped patterns (i.e. still, linear, curved, oblique,circular, squared, rectangular, triangular, approaching, retreating,etc.), commonly used patterns (i.e. patterns used or preferred by otherusers, etc.), any patterns of movement toward, away, and/or around anaction scene, and/or any other conceivable patterns, in the case of userpreferred patterns, MDP Unit 100 may include a process of recordingand/or storing a sequence of coordinates of user's movements amongMulti-directional Motion Pictures 400. In some aspects, patterns ofmovement among Multi-directional Motion Pictures 400 and/or theircoordinates may be stored in Multi-directional Pictures Repository 115,or in any external file (i.e. object file, etc.), data structure, DBMS,database, system, process, and/or any other storage or data repository.In one example, coordinates of a Multi-directional Motion Picture 400 ina pattern may be stored in a data field of the Multi-directional MotionPicture 400 data structure. In another example, coordinates of aMulti-directional Motion Picture 400 in a pattern may be stored in adata field of the pattern data structure and/or associated with theMulti-directional Motion Picture 400.

In some embodiments, a pattern of movement among Multi-directionalMotion Pictures 400 may include time periods (i.e. delays, etc.) tomeasure the length of stay on a particular Multi-directional MotionPicture 400 before moving to a next Multi-directional Motion Picture 400in the pattern, Any time periods measured in any time units may be usedsuch as, for example, 21 milliseconds, 5 seconds, 113 seconds, 17minutes, 49 hours, 2 months, 1 year, etc. Time periods may be used tocontrol and/or adjust the speed of movement among Multi-directionalMotion Pictures 400 in a pattern. As such, user may manually or CoreProgram 110 may automatically adjust time periods of any or allMulti-directional Motion Pictures 400 at any time before, during, and/orafter a pattern's execution. In some aspects, time periods may be storedin Multi-directional Pictures Repository 115, or in any external file(i.e. object file, etc.), data structure, DBMS, database, system,process, and/or any other storage or data repository. In one example, atime period of a Multi-directional Motion Picture 400 in a pattern maybe stored in a data field of the Multi-directional Motion Picture 400data structure. In another example, a time period of a Multi-directionalMotion Picture 400 in a pattern may be stored in a data field of thepattern data structure and/or associated with the Multi-directionalMotion Picture 400,

In some embodiments, MDP Unit 100 may include motion detection instreams of pictures (i.e. motion pictures). Motion detection functionsand algorithms may be implemented for detecting action scenes or movingobjects in Motion Pictures 410 a, 410 b, 410 c, 410 d, etc. Anyalgorithms or techniques for motion detection in streams of digitalpictures known in art may be used. Motion detection in streams ofdigital pictures may generally compare a current picture with areference picture (i.e. previous picture, following picture, backgroundpicture, etc.) by counting the number of different pixels. The thresholdfor the number of different pixels may be adjustable by a user orautomatically adjustable as needed. Also, the threshold for a differencein each of the pixels may be adjustable as well. Motion detectionalgorithms may detect moving objects as well as their direction ofmovement through picture processing. Examples of motion detectionalgorithms and programs include AForge.NET, Rise Sun, Pryme, MotionHunter, Motion Detector Pro, and others.

In some embodiments, Motion Picture Cameras 490 a, 490 b, 490 c, 490 d,etc. or other motion picture taking equipment may be installed above anaction scene such as, for example on a ceiling of a room. As such,detection of an action scene or any moving objects may be achieved bydetecting motion in Motion Pictures 410 a, 410 b, 410 c, 410 d, etc. ofall Multi-directional Motion Pictures 400. Coordinates of the actionscene may be determined or estimated in a Multi-directional MotionPicture 400 where no motion is detected. In one example,Multi-directional Motion Picture 400 with coordinates (5,5) where motionis not detected may be location of the action scene as the action scenemay be in the blind spot of Motion Picture Cameras 490 a, 490 b, 490 c,490 d, etc. or other motion picture taking equipment whose fields ofview may be directed away from the action scene (i.e. forward, backward,right, left, etc.).

Referring to FIG. 34, an embodiment is illustrated where detection of anaction scene may be achieved by detecting motion in lines ofMulti-directional Motion Pictures 400 aligned with reference points(i.e. corners of buildings, points along walls representing x, y, or zaxes, center of a represented object, etc.) of a represented object. Inone example, an action scene may be located near the center of arectangular room such as the Action Location 76 b with coordinates(5,5). As such, a Motion Picture 410 a, 410 b, 410 c, 410 d, etc. of aMulti-directional Motion Picture 400 located near one of the walls suchas the Multi-directional Motion Picture 400 with coordinates (5,1) maybe used to detect the action scene. Once action scene is detected in,for example, Forward Motion Picture 410 a of the Multi-directionalMotion Picture 400 with coordinates (5,1), detection of the action scenemay be performed in Forward Motion Pictures 410 a of Multi-directionalMotion Pictures 400 with coordinates (5,2), (5,3), (5,4), (5,5), (5,6),(5,7), (5,8), (5,9), and (5,10) located on Reference Line 620. As such,y coordinate of the action scene may be determined or estimated in ycoordinate of the first Multi-directional Motion Picture 400 onReference Line 620 with Forward Motion Picture 410 a that did not detectthe action scene such as in this example Multi-directional MotionPicture 400 with coordinates (5,5). Similar steps may be used todetermine or estimate x coordinate of the action scene by detectingaction scene in, for example, all Right Motion Pictures 410 c ofMulti-directional Motion Pictures 400 located on Reference Line 630starting with Multi-directional Motion Picture 400 with coordinates(1,5). Any Multi-directional Motion Picture 400 may be used as areference point and/or starting point of a reference line. Also, anyMotion Picture 410 a, 410 b, 410 c, 410 d, etc. of any Multi-directionalMotion Picture 400 may be used to detect the action scene or any movingobjects.

In some embodiments, Motion Picture Cameras 490 a, 490 b, 490 c, 490 d,etc. or other motion picture taking equipment used for capturing MotionPictures 410 a, 410 b, 410 c, 410 d, etc. may include a means ofdetecting motion, a means of aligning itself toward a detected movingobject (i.e. action scene, etc.), and/or a means of focusing on thedetected object (i.e. action scene, etc.). Detecting motion, aligningand focusing may be performed automatically by the motion picture takingequipment. Detecting motion may be accomplished by utilizing any motionsensing technologies known in art such as infrared (i.e. passive oractive sensors, etc.), optics (i.e. video or camera systems, etc.),radio frequency energy (i.e. radar, microwave or tomographic, etc.),sound (i.e. microphones or acoustic sensors, etc.), vibration (i.e.triboelectric, seismic, or inertia-switch sensors, etc.), magnetism(i.e. magnetic sensors or magnetometers, etc.), and others. Once motionis detected by a motion sensor, electric motors may be used to align thefield of view of the motion picture taking equipment or lens thereoftoward the detected moving object (i.e. action scene, etc.). Focusingmay be accomplished through adjusting the position of a lens of themotion picture taking equipment. Automatic motion detecting, aligningand focusing on the detected action scene may enhance user experience ofmoving among Multi-directional Motion Pictures 400 as user would notneed to perform these actions him/herself. In some embodiments, motiondetecting, aligning and/or focusing functionalities that may be builtinto motion picture taking equipment may be used to determine orestimate coordinates of a moving object (i.e. action scene, etc.). Inone example, any triangulation techniques known in art may be used todetermine or estimate coordinates of an action scene by utilizing knowncoordinates of any three locations (i.e. Multi-directional MotionPictures 400, etc.) with the described motion picture taking equipmentinstalled.

Referring to FIG. 35, in some aspects, the teaching presented by thedisclosure may be implemented to include methods, systems andapparatuses for creating collections of Multi-directional MotionPictures 400 representing an object. In some embodiments, such methods,systems and apparatuses may include motion picture taking equipment suchas motion picture cameras individually arranged to simultaneouslycapture motion pictures (i.e. streams of pictures) in various directions(i.e. forward, backward, right, left, up, down, diagonal, etc.). Inother embodiments, such methods, systems and apparatuses for creatingcollections of Multi-directional Motion Pictures 400 representing anobject may include Multi-directional Motion Picture Taking Devices 480.A Multi-directional Motion Picture Taking Device 480 may comprise anyhardware, software or a combination of hardware and software.Multi-directional Motion Picture Taking Device 480 may include functionsand algorithms for simultaneously capturing motion pictures (i.e.streams of pictures) in various directions (i.e. forward, backward,right, left, up, down, diagonal, etc.). Such Multi-directional MotionPicture Taking Device 480 may include motion picture taking equipmentsuch as Motion Picture Cameras 490 arranged to point in variousdirections (i.e. forward, backward, right, left, up, down, diagonal,angular, etc.). In one example, Multi-directional Motion Picture TakingDevice 480 may include Forward Motion Picture Camera 490 a, BackwardMotion Picture Camera 490 b, Right Motion Picture Camera 490 c, LeftMotion Picture Camera 490 d, and/or any other Motion Picture Cameras.Other additional elements may be included as needed, or some of thedisclosed ones may be excluded, or a combination thereof may be utilizedin alternate embodiments. Furthermore, such Multi-directional MotionPicture Taking Device 480 may be included in an integrated and/orstandardized casing. The casing may include a means such as clips,screws, adhesive elements, or other means to easily attach or mount thecasing on ceilings, floors, walls, polls, fences, or other surfaces oritems. Such Multi-directional Motion Picture Taking Device 480 may alsoinclude a means such as cable, wireless connection, or other connectionmeans to connect the motion picture taking equipment such as MotionPicture Cameras 490 a, 490 b, 490 c, 490 d, etc. with a Computing Device70. As shown for example in FIG. 35, Multi-directional Motion PictureTaking Devices 480 or individually arranged motion picture takingequipment may be positioned in the center of every full square yard of arepresented object such as Room 512 to cover the entire Room 512. Oncepositioned in their locations, Multi-directional Motion Picture TakingDevices 480 or individually arranged motion picture taking equipment maycapture Motion Pictures 410 a, 410 b, 410 c, 410 d, etc. from eachlocation simultaneously. Each Motion Picture 410 a, 410 b, 410 c, 410 d,etc. may be transferred via the connection means (i.e. cable, wirelessconnection, etc.) to a program running on Computing Device 70. In someembodiments where Multi-directional Motion Picture Taking Devices 480may be used, the program may associate each Multi-directional MotionPicture Taking Device 480 with a corresponding Multi-directional MotionPicture 400 and associate each Motion Picture Camera 490 a, 490 b, 490c, 490 d, etc. of the Multi-directional Motion Picture Taking Device 480with a corresponding Motion Picture 410 a, 410 b, 410 c, 410 d, etc. Inother embodiments where individually arranged motion picture takingequipment such as Motion Picture Cameras 490 a, 490 b, 490 c, 490 d,etc. may be used, the program may associate each set of Motion PictureCameras 490 a, 490 b, 490 c, 490 d, etc. from a particular location witha corresponding Multi-directional Motion Picture 400 and associate eachMotion Picture Camera 490 a, 490 b, 490 c, 490 d, etc. with acorresponding Motion Picture 410 a, 410 b, 410 c, 410 d, etc.

If an action scene (i.e. moving persons and/or objects, etc.) is causedto enter an object such as Room 512 having the describedMulti-directional Motion Picture Taking Devices 480 or individuallyarranged motion picture taking equipment installed, all views or anglesof the action scene including all views or angles of the object (i.e.Room 512, etc.) may simultaneously be captured from all locations of theobject (i.e. Room 512, etc.) for the duration of the motion pictures.User may use an instance of MDP Unit 100 on his/her Computing Device 70to move the view of the action scene and/or the represented object (i.e.Room 512, etc.) in all directions while the action may be progressing aspreviously described. In order to avoid collisions between actionfigures (i.e. moving persons and/or objects in the action scene) andmotion picture taking equipment, the motion picture taking equipment maybe installed to hang from the ceiling, to hang from walls, to be raisedfrom the floor, or to be positioned in other suitable locations. In oneexample, motion picture taking equipment may be installed to hang fromthe ceiling in which case the motion picture taking equipment or lensesthereof may be angled downward toward the action scene. In anotherexample, motion picture taking equipment may be installed on the floorin which case the motion picture taking equipment or lenses thereof maybe angled upward toward the action scene. In yet another example, motionpicture taking equipment may be installed on the walls in which case themotion picture taking equipment or lenses thereof may be leveled towardthe action scene. In general, motion picture taking equipment or lensesthereof may be angled in any suitable direction. In a case of exteriorof an object or exterior open space (i.e. outside of a building, park,street, etc.) with an action scene, any suitable object and/or surfaceable to hold the motion picture taking equipment may be utilizedincluding, but not limited to, tree, lighting pole, electric pole,fence, building, wall, and/or other suitable object or surface. In someembodiments, specially made holding equipment may be utilized such as,for example, specially made cable maze or metal grid elevated to holdthe motion picture taking equipment above the action scene.

In some embodiments, a time stamp may be assigned or associated witheach of the pictures (i.e. frames) of Motion Pictures 410 a, 410 b, 410c, 410 d, etc. to coordinate movement among Multi-directional MotionPictures 400 and/or Motion Pictures 410 a, 410 b, 410 c, 410 d, etc. ina time continuum. In one example, when a user chooses to move his/herview of a represented object or an action scene by switching from oneMotion Picture 410 a, 410 b, 410 c, 410 d, etc. to another within thesame Multi-directional Motion Picture 400, Core Program 110 may look inthe destination Motion Picture 410 a, 410 b, 410 c, 410 d, etc. for anappropriate picture (i.e. frame) having an incrementally subsequent timestamp. Core Program 110 may then show through Picture Display 840 astream of pictures (i.e. frames) of the destination Motion Picture 410a, 410 b, 410 c, 410 d, etc. starting with the incrementally subsequenttime stamp. In another example, when a user chooses to move his/her viewof a represented object or an action scene by moving from oneMulti-directional Motion Picture 400 to another, Core Program 110 maylook in the destination Motion Picture 410 a, 410 b, 410 c, 410 d, etc.of the destination Multi-directional Motion Picture 400 for anappropriate picture (i.e. frame) having an incrementally subsequent timestamp. Core Program 110 may then show through Picture Display 840 astream of pictures (i.e. frames) of the destination Motion Picture 410a, 410 b, 410 c, 410 d, etc. starting with the incrementally subsequenttime stamp. In some embodiments, Multi-directional Motion Picture 400may comprise a data structure whose data fields may include time stampof each of the pictures (i.e. frames) of Motion Picture 410 a, 410 b,410 c, 410 d, etc. In other embodiments, Motion Picture 410 a, 410 b,410 c, 410 d, etc. may include or store time stamps of its own pictures(i.e. frames) internally (i.e. internally stored time stamps in adigital video file, etc.). In yet other embodiments, a time stamp may beassigned or associated with each of the pictures (i.e. frames) of MotionPictures 410 a, 410 b, 410 c, 410 d, etc. based on a frame rate formulaor any other formula or algorithm for computing time stamps in streamsof pictures (i.e. motion pictures, etc.) known in art. In yet otherembodiments, Motion Picture 410 a, 410 b, 410 c, 410 d, etc. may includea stream of pictures (i.e. frames) where each picture may be stored inits own file and where time stamp may be stored in the name of the file.In the following example, time stamps may be stored in names of filesand may include 0.04 second increments consistent with digital qualityvideo of 25 frames per second.

<PARAM NAME=picture0 VALUE=“picture0”> <PARAM NAME=forward_picture0_1VALUE=“Pic0_1_20120803_09:43:22:040.jpg”> <PARAM NAME=forward_picture0_2VALUE=“Pic0_2_20120803_09:43:22:080.jpg”> <PARAM NAME=forward_picture0_3VALUE=“Pic0_3_20120803_09:43:22:120.jpg”> <PARAMNAME=backward_picture0_l VALUE=“Pic1_1_20120803_09:43:22:040.jpg”><PARAM NAME=backward_picture0_2VALUE=“Pic1_2_20120803_09:43:22:080.jpg”> <PARAMNAME=backward_picture0_3 VALUE=“Pic1_3_20120803_09:43:22:120.jpg”><PARAM NAME=right_picture0_1 VALUE=“Pic2_1_20120803_09:43:22:040.jpg”><PARAM NAME=right_picture0_2 VALUE=“Pic2_2_20120803_09:43:22:080.jpg”><PARAM NAME=right_picture0_3 VALUE=“Pic2_3_20120803_09:43:22:120.jpg”><PARAM NAME=left_picture0_1 VALUE=“Pic3_1_20120803_09:43:22:040.jpg”><PARAM NAME=left_picture0_2 VALUE=“Pic3_2_20120803_09:43:22:080.jpg”><PARAM NAMlE=left_picture0_3 VALUE=“Pic3_3_20120803_09:43:22:120.jpg”><PARAM NAME=forward_link0 VALUE=“picture1”> <PARAM NAME=backward_link0VALUE=“null”> <PARAM NAME=right_link0 VALUE=“null”> <PARAMNAME=left_link0 VALUE=“null”> <PARAM NAME=picture1 VALUE=“picture1”><PARAM NAME=forward_picture1_1 VALUE=“Pic4_1_20120803_09:43:22:040.jpg”><PARAM NAME=forward_picture1_2 VALUE=“Pic4_2_20120803_09:43:22:080.jpg”><PARAM NAME=forward_picture1_3 VALUE=“Pic4_3_20120803_09:43:22:120.jpg”><PARAM NAME=backward_picture1_1VALUE=“Pic5_1_20120803_09:43:22:040.jpg”> <PARAMNAME=backward_picture1_2 VALUE=“Pic5_2_20120803_09:43:22:080.jpg”><PARAM NAME=backward_picture1_3VALUE=“Pic5_3_20120803_09:43:22:120.jpg”> <PARAM NAME=right_picture1_1VALUE=“Pic6_1_20120803_09:43:22:040.jpg”> <PARAM NAME=right_picture1_2VALUE=“Pic6_2_20120803_09:43:22:080j.pg”> <PARAM NAME=right_picture1_3VALUE=“Pic6_3_20120803_09:43:22:120.jpg”> <PARAM NAME=left_picture1_1VALUE=“Pic7_1_20120803_09:43:22:040.jpg”> <PARAM NAME=left_picture1_2VALUE=“Pic7_2_20120803_09:43:22:080.jpg”> <PARAM NAME=left_picture1_3VALUE=“Pic7_3_20120803_09:43:22:120.jpg”> <PARAM NAME=forward_link1VALUE=“picture2”> <PARAM NAME=backward_link1 VALUE=“picture0”> <PARAMNAME=right_link1 VALUE=“picture3”> <PARAM NAME=left_link1VALUE=“picture4 ”> ...

Referring to FIG. 36, the illustration shows an embodiment of a method2400 for generating a collection of Multi-directional Motion Pictures400 representing an object. The steps of this exemplary method maytherefore be used by a user on a computing device operating an interfacefor a MDP Unit 100 to enable a user to generate Multi-directional MotionPictures 400 in a user-friendly process. One of ordinary skill in artwill understand that some or all steps of this method may be reordered,and that other additional steps may be included as needed, or some ofthe disclosed ones may be excluded, or a combination thereof may beutilized in alternate embodiments. Some or all steps of this method maysimilarly be utilized for generating a collection of Multi-directionalStill Pictures 200 representing an object.

At step 2405, one or more streams of time stamped still pictures eachdepicting a differently directed view from a location of pluralitylocations of a represented object are received by a computing device.MDP Unit 100 may enable interactive visual representation of objectsover time using multi-directional motion pictures positioned inlocations of the represented object. Any locations may be used torepresent the object. In one example, steps (i.e. every two feet, etc.)in a park's walkways may be used as the locations to simulate a user'sstepping through the park in time continuum. In another example, evenlyspaced locations (i.e. locations in the center of every square yard,etc.) in a room may be used as locations to simulate a user's steppingthrough the room in a time continuum. In one example, a first locationmay be a logical starting point such as a location near an entrance intoa park or near a door to a room. In another example, the first locationmay be any location of the represented object. In some embodiments, aset of individually arranged motion picture taking equipment such asmotion picture cameras and/or any other motion picture taking equipmentmay be used to simultaneously capture streams of time stamped stillpictures (i.e. motion pictures, videos, etc.) in various directions(i.e. forward, backward, right, left, up, down, diagonal, etc.). Inother embodiments, a set of integrated motion picture taking equipmentsuch as motion picture cameras and/or any other motion picture takingequipment may be used to simultaneously capture streams of time stampedstill pictures (i.e. motion pictures, videos, etc.) in variousdirections (i.e. forward, backward, right, left, up, down, diagonal,etc.). Such set of integrated motion picture cameras and/or any othermotion picture taking equipment may be included in an integrated and/orstandardized casing. Such casing may further include a means such asclips, screws, adhesive elements, etc. to easily attach or mount thecasing on ceilings, floors, walls, polls, fences, etc. Any number ofsets of differently directed motion picture cameras and/or any othermotion picture taking equipment may be placed in any number of locationsof the represented object. In some embodiments, any number of sets ofdifferently directed motion picture cameras and/or any other motionpicture taking equipment may be placed in locations to cover the entirerepresented object or a portion thereof. In one example, if an actionscene (i.e. moving persons or objects, etc.) is caused to enter anobject (i.e. park, interior of a building, etc.) with the describedmotion picture cameras and/or any other motion picture taking equipmentinstalled, all views or angles of the action scene including all viewsor angles of the represented object may simultaneously be captured forthe duration of the streams of time stamped still pictures (i.e. motionpictures, videos, etc.). A computing device may receive the capturedstreams of time stamped still pictures (i.e. motion pictures, videos,etc.) via a connection means. Such connection means may be utilized tofacilitate transfer of streams of time stamped still pictures (i.e.motion pictures, videos, etc.) from each of the motion picture camerasand/or any other motion picture taking equipment to an instance of MDPUnit 100 running on the computing device. Such connection means mayinclude a cable, a network, a wireless connection, and/or any otherconnection means. Such connection means may be included or attached tothe motion picture camera and/or any other motion picture takingequipment for user's convenience. In some embodiments, an instance ofMDP Unit 100 running on the computing device may associate a motionpicture camera and/or any other motion picture taking equipment with acorresponding multi-directional motion picture using the connectionmeans to identify a specific motion picture camera and/or any othermotion picture taking equipment. In some embodiments, the streams oftime stamped still pictures (i.e. motion pictures, videos, etc.) may bereceived from a motion picture camera and/or any other motion picturetaking equipment and directed to an instance of MDP Unit 100 through thecomputing device's internal connection or storage means such as bus,hard drive, memory, or any other directly or operatively connectedinternal connection or storage means. In one example, a motion picturecamera and/or any other motion picture taking equipment may transfer astream of time stamped still pictures in a file over a network to whichthe computing device may connect and on which an instance of MDP Unit100 may access the file. In another example, a motion picture cameraand/or any other motion picture taking equipment may store a stream oftime stamped still pictures in a file on a hard drive of the computingdevice where an instance of MDP Unit 100 may access the file. A set ofdifferently directed motion picture cameras and/or any other motionpicture taking equipment may include any action or operation by or forMotion Picture Camera 490 a, 490 b, 490 c, 490 d, etc. and/orMulti-directional Motion Picture Taking Device 480.

At step 2410, a first multi-directional motion picture is generated toinclude the one or more streams of time stamped still pictures from afirst location. Each location of the represented object such as thefirst location may be associated with a multi-directional motionpicture. In some embodiments, a multi-directional motion picture mayinclude a data structure organizing and/or storing one or moredifferently directed streams of time stamped still pictures and one ormore links to other multi-directional motion pictures. Multi-directionalmotion pictures may enable a user to view all views (i.e. forward,backward, right, left, up, down, diagonal, etc.) from all locations of arepresented object over time and enable the user to move among themulti-directional motion pictures this way simulating motion through therepresented object over time. Each still picture (i.e. frame) in astream of time stamped still pictures (i.e. motion picture, video, etc.)may include or be associated with a time stamp. In some embodiments,multi-directional motion picture may comprise a data structure whosedata fields may include a time stamp of each of the still pictures (i.e.frames) of a stream of time stamped still pictures (i.e. motion picture,video, etc.). In other embodiments, a stream of time stamped stillpictures (i.e. motion picture, video, etc.) may include or store timestamps of its own still pictures (i.e. frames) internally. In yet otherembodiments, a stream of time stamped still pictures (i.e. motionpicture, video, etc.) may include still pictures (i.e. frames) eachstored in its own file where the time stamp may be stored in the name ofthe file. In yet other embodiments, time stamp of each of the stillpictures in a stream of time stamped still pictures may be determined orcalculated based on a frame rate or other formula. Time stamp may beutilized for each of the still pictures (i.e. frames) within each of thestreams of time stamped still pictures (i.e. motion picture, video,etc.) in order to enable coordination of movement amongmulti-directional motion pictures in a time continuum. A time stamp mayinclude any time increments measured in any unit of time such asnanoseconds, milliseconds, seconds, minutes, hours, months, years,and/or any other units of time. In one example, 0.04 second incrementsmay be used for each still picture (i.e. frame) consistent with digitalquality video of 25 frames per second. In some embodiments, an instanceof MDP Unit 100 may assign a time stamp (i.e. from system clock, etc.)to each still picture of a stream of still pictures (i.e. motionpicture, video, etc.). In other embodiments, motion picture camerasand/or any other motion picture taking equipment may assign a time stamp(i.e. from system clock, etc.) to each still picture of a stream ofstill pictures (i.e. motion picture, video, etc.). Time stamps may beused to transition among streams of time stamped still pictures (i.e.motion picture, video, etc.) where an instance of MDP Unit 100 may lookfor an appropriate still picture (i.e. frame) having an incrementallysubsequent time stamp within a destination stream of time stamped stillpictures (i.e. motion picture, video, etc.) in order to make a propertransition. In some embodiments, multi-directional motion pictures maybe ordered to include a first multi-directional motion picture, followedby a second multi-directional motion picture, which may also be followedby a third multi-directional motion picture, and so on, to complete asequence. In other embodiments, multi-directional motion pictures may bearranged in a maze that may correspond to a shape of the representedobject. In yet other embodiments, multi-directional motion pictures maybe interlinked in any conceivable manner without using any intermediaryor supporting data structures such as the sequence and/or maze.Generally, multi-directional motion pictures may correspond to a shapeof a represented object. In some embodiments, picture processing may beimplemented to automatically detect streams of time stamped stillpictures with overlapping fields of view from a specific location of therepresented object such as the first location, and to add the detectedstreams of time stamped still pictures to multi-directional motionpicture representing the location. Generating may include any action oroperation by or for a Maker 920.

At step 2415, a second multi-directional motion picture is generated toinclude the one or more streams of time stamped still pictures from asecond location. Step 2415 may include any action or operation describedin step 2410 as applicable.

At step 2420, a link with the second multi-directional motion picture isadded to the first multi-directional motion picture and a link with thefirst multi-directional motion picture is added to the secondmulti-directional motion picture, the first location being adjacent tothe second location. MDP Unit 100 may include a means through which auser may add bidirectional links to any two adjacent multi-directionalmotion pictures. In some embodiments in which multi-directional motionpicture may include a data structure, such means may include an editoror graphical user interface configured to ask the user to indicate alink with a specific multi-directional motion picture and to add a newdata field including the new link to the data structure. In otherembodiments in which multi-directional motion picture may include a datastructure, such means may use picture processing to automatically detecta new link with a multi-directional motion picture and add a new datafield including the new link to the data structure. In general, addingbidirectional links between any two adjacent multi-directional motionpictures such as the first and second multi-directional motion picturesmay enable the user to move between the two multi-directional motionpictures. In some embodiments, links may be added individually to theirrespective multi-directional motion pictures instead of addingbidirectional links in one process step. Adding a link may include anyaction or operation by or for a Maker 920.

At step 2425, steps 2415 and 2420 are repeated to generate and link anyadditional multi-directional motion pictures. Step 2425 may include anyaction or operation described in steps 2415 or 2420 as applicable.

At step 2430, a new link with another multi-directional motion pictureis added to any of the multi-directional motion pictures. MDP Unit 100may include a means through which a user may access any of themulti-directional motion pictures and add to it an additional link withany other multi-directional motion picture. In some embodiments in whichmulti-directional motion picture may include a data structure, suchmeans may include an editor or graphical user interface configured toask the user to indicate a link with a specific multi-directional motionpicture and to add a new data field including the new link to the datastructure. In other embodiments in which multi-directional motionpicture may include a data structure, such means may use pictureprocessing to automatically detect a new link with a multi-directionalmotion picture and add a new data field including the new link to thedata structure. Adding a link may include any action or operation by orfor a Maker 920.

At step 2435, a link of any of the multi-directional motion pictures ismodified. MDP Unit 100 may include a means through which a user mayaccess any of the multi-directional motion pictures and modify any ofits links. In some embodiments in which multi-directional motion picturemay include a data structure, such means may include an editor orgraphical user interface configured to read a data field including alink, ask the user to indicate a link with another multi-directionalmotion picture, and replace the previous link with the updated link inthe data field. In some embodiments in which multi-directional motionpicture may include a data structure, such means may read a data fieldincluding a link, use picture processing to automatically detect a linkwith another multi-directional motion picture, and replace the previouslink with the updated link in the data field. Modifying a link mayinclude any action or operation by or for a Maker 920.

At step 2440, one or both of step 2430 and step 2435 are repeated to addor modify a link of any multi-directional motion pictures. Step 2440 mayinclude any action or operation described in step 2430 and/or step 2435as applicable. Any number of links among multi-directional motionpictures may be used in user's discretion. Such links may connectmulti-directional motion pictures in any conceivable direction (i.e.forward, backward, right, left, up, down, diagonal, etc.). The links mayenable the user to move among multi-directional motion pictures this waysimulating motion through the represented object. In one example, linksmay connect multi-directional motion pictures associated with locations(i.e. steps, etc.) on a parks walkways. In another example, links mayconnect multi-directional motion pictures associated with evenly spacedlocations (i.e. locations in the center of every square yard, etc.) in aroom. Generally, links among multi-directional motion pictures maycorrespond to a shape of a represented object.

At step 2445, the multi-directional motion pictures, their streams oftime stamped still pictures, and their links are stored in memory of thecomputing device. Multi-directional motion pictures may be stored,maintained, and/or organized in various arrangements including files,data structures, objects, tables, databases, DBMSs, memory structures,and/or other similar arrangements and/or data repositories. In someembodiments, streams of time stamped still pictures or referencesthereto, links, and/or any data structures (i.e. multi-directionalmotion pictures, mazes, sequences, etc.) may be stored in aMulti-directional Pictures Repository 115. In some embodiments,Multi-directional Pictures Repository 115 may include a file, a datastructure, and/or other similar digital data repository. In otherembodiments, Multi-directional Pictures Repository 115 may include adatabase management system (DBMS), a database, a system, a process,and/or other similar digital data repository. In further embodiments,Multi-directional Pictures Repository 115 may be embedded within aninstance of MDP Unit 100 (i.e. hard coded in the Core Program 110). Inyet further embodiments, Multi-directional Pictures Repository 115 mayinclude a separate file (i.e. object file, etc.), a separate datastructure, a separate DBMS, a separate database, a separate system, aseparate process, and/or other separate digital data repository orsystem for each of the streams of time stamped still pictures (i.e.motion pictures, videos, etc.) or references thereto, for each of thelinks, and/or for each of the data structures (i.e. multi-directionalmotion pictures, mazes, sequences, etc.). In yet further embodiments,Multi-directional Pictures Repository 115 may include a collection ofdefinitions of streams of time stamped still pictures or referencesthereto, links, and/or any data structures (i.e. multi-directionalmotion pictures, mazes, sequences, etc.) that may be embedded in otherfiles or programs. Storing may include any action or operation by or fora Maker 920.

Embodiments involving any motion picture or multi-directional motionpicture functionalities may include any features or embodimentsinvolving any still picture or multi-directional still picturefunctionalities as previously described.

In some aspects, the teaching presented by the disclosure may beimplemented in a device or system for generating multi-directionalmotion pictures. The device or system may include a processor and aninterface, coupled to the processor, for receiving one or more streamsof time stamped still pictures each stream of time stamped stillpictures depicting a differently directed view from a location ofplurality locations of a represented object. The device or system mayfurther include an assembler, coupled to the interface, for generating afirst multi-directional motion picture to include the one or morestreams of time stamped still pictures from a first location and asecond multi-directional motion picture to include the one or morestreams of time stamped still pictures from a second location, andadding a link with the second multi-directional motion picture to thefirst multi-directional motion picture and adding a link with the firstmulti-directional motion picture to the second multi-directional motionpicture, the first location being adjacent to the second location. Theprocessor, the interface, the assembler and/or other elements of thedevice or system for generating multi-directional motion pictures mayinclude any features and functionalities of Processor 11, Maker 920,Multi-directional Pictures Repository 115, Input interface 140, Keyboard150 or any other input device, and/or other disclosed elements. Thedevice or system may also include any functionalities or steps of anydisclosed methods such as, for example, method 2400. For example, aninput device such as a motion picture camera may provide a means forcapturing streams of time stamped still pictures from locations of arepresented object. Input Interface 140 may process the captured streamsof time stamped still pictures for use by Maker 920 or other disclosedelements. Assembler may be implemented on Processor 11 and it mayorganize and/or store the captured streams of time stamped stillpictures or references thereto, any data structures (i.e.multi-directional motion pictures, mazes, sequences, etc.) and/or otherelements in Multi-directional Pictures Repository 115. Assembler may beincluded in Maker 920, it may be a separate program implemented onProcessor 11, it may be a hardware component or a separate processordedicated to its assigned functionalities, or a combination thereof.

A number of embodiments have been described herein. While thisspecification contains many specific implementation details, theseshould not be construed as limitations on the scope of any inventions orof what may be claimed, but rather as descriptions of features specificto particular embodiments. It will be understood that variousmodifications may be made without departing from the spirit and scope ofthe invention. The logic flows depicted in the figures do not requirethe particular order shown, or sequential order, to achieve desiredresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the disclosed methods, systems and apparatuses.Further, various aspects of the disclosed methods, systems andapparatuses can be combined in whole or in part with each other toproduce additional implementations. Moreover, the separation of variouscomponents in the embodiments described herein should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described components may generally be integratedtogether in a single software product or packaged into multiple softwareproducts. Accordingly, other embodiments are within the scope of thefollowing claims.

The invention claimed is:
 1. A system for generating multi-directionalpictures, the system implemented at least in part on one or morecomputing devices, the system comprising: one or more processor circuitscoupled to a memory unit; a picture-taking device, coupled to the one ormore processor circuits, for capturing pictures; and an interface forguiding a user configured to: guide a user to capture one or morepictures from a first location of a represented object using thepicture-taking device; and guide the user to capture one or morepictures from a second location of the represented object using thepicture-taking device, wherein the one or more processor circuits areconfigured to: generate a first multi-directional picture including theone or more pictures from the first location; generate a secondmulti-directional picture including the one or more pictures from thesecond location; determine that at least a subset of a picture of theone or more pictures of the first multi-directional picture at leastpartially matches at least a subset of a resized picture of the one ormore pictures of the second multi-directional picture to indicate a lineof sight from the picture of the one or more pictures of the firstmulti-directional picture to the picture of the one or more pictures ofthe second multi-directional picture; add a link with the secondmulti-directional picture to the first multi-directional picture, thefirst multi-directional picture including one or more links; add a linkwith the first multi-directional picture to the second multi-directionalpicture, the second multi-directional picture including one or morelinks; and cause the memory unit to store the first and the secondmulti-directional pictures, wherein the memory unit stores at least aplurality of multi-directional pictures, the plurality ofmulti-directional pictures interlinked corresponding to a shape of therepresented object to enable portrayal of the represented object of anyshape.
 2. The system of claim 1, further comprising: an interface forediting multi-directional pictures configured to: receive a user'sselection to manually add a new picture to the one or more pictures ofthe first or the second multi-directional picture, wherein the one ormore processor circuits are further configured to: add the new pictureto the one or more pictures of the first or the second multi-directionalpicture in response to the receiving.
 3. The system of claim 1, furthercomprising: an interface for editing multi-directional picturesconfigured to: receive a user's selection to manually modify or delete apicture of the one or more pictures of the first or the secondmulti-directional picture, wherein the one or more processor circuitsare further configured to: modify or delete the picture of the one ormore pictures of the first or the second multi-directional picture inresponse to the receiving.
 4. The system of claim 1, further comprising:an interface for editing multi-directional pictures configured to:receive a user's selection to manually add a new link with a thirdmulti-directional picture to the one or more links of the first or thesecond multi-directional picture, wherein the one or more processorcircuits are further configured to: add the new link with the thirdmulti-directional picture to the one or more links of the first or thesecond multi-directional picture in response to the receiving.
 5. Thesystem of claim 1, further comprising: an interface for editingmulti-directional pictures configured to: receive a user's selection tomanually modify or delete a link of the one or more links of the firstor the second multi-directional picture, wherein the one or moreprocessor circuits are further configured to: modify or delete the linkof the one or more links of the first or the second multi-directionalpicture in response to the receiving.
 6. The system of claim 1, whereinthe adding the link with the second multi-directional picture to thefirst multi-directional picture and the adding the link with the firstmulti-directional picture to the second multi-directional picture areperformed in response to the determining that at least a subset of thepicture of the one or more pictures of the first multi-directionalpicture at least partially matches at least a subset of the resizedpicture of the one or more pictures of the second multi-directionalpicture to indicate a line of sight from the picture of the one or morepictures of the first multi-directional picture to the picture of theone or more pictures of the second multi-directional picture.
 7. Thesystem of claim 1, wherein the adding the link with the secondmulti-directional picture to the first multi-directional picture and theadding the link with the first multi-directional picture to the secondmulti-directional picture are performed without a user input.
 8. Thesystem of claim 1, wherein the resized picture of the one or morepictures of the second multi-directional picture includes a resized copyof the picture of the one or more pictures of the secondmulti-directional picture.
 9. The system of claim 1, wherein the one ormore pictures of the first or the second multi-directional pictureinclude a still picture or a motion picture.
 10. The system of claim 1,wherein the one or more links of the first or the secondmulti-directional picture include a link with a multi-directionalpicture or a link with an outside application or process.
 11. Anon-transitory computer storage medium having a computer program storedthereon, the program comprising instructions that when executed by oneor more processor circuits cause the one or more processor circuits toperform operations comprising: guiding a user to capture one or morepictures from a first location of a represented object using apicture-taking device; generating a first multi-directional pictureincluding the one or more pictures from the first location; guiding theuser to capture one or more pictures from a second location of therepresented object using the picture-taking device; generating a secondmulti-directional picture including the one or more pictures from thesecond location; determining that at least a subset of a picture of theone or more pictures of the first multi-directional picture at leastpartially matches at least a subset of a resized picture of the one ormore pictures of the second multi-directional picture to indicate a lineof sight from the picture of the one or more pictures of the firstmulti-directional picture to the picture of the one or more pictures ofthe second multi-directional picture; adding a link with the secondmulti-directional picture to the first multi-directional picture, thefirst multi-directional picture including one or more links; adding alink with the first multi-directional picture to the secondmulti-directional picture, the second multi-directional pictureincluding one or more links; and causing a memory unit to store thefirst and the second multi-directional pictures, wherein the memory unitstores at least a plurality of multi-directional pictures, the pluralityof multi-directional pictures interlinked corresponding to a shape ofthe represented object to enable portrayal of the represented object ofany shape.
 12. The non-transitory computer storage medium of claim 11,the operations further comprising: receiving, via an input device, auser's selection to manually add a new picture to the one or morepictures of the first or the second multi-directional picture; andadding the new picture to the one or more pictures of the first or thesecond multi-directional picture in response to the receiving.
 13. Thenon-transitory computer storage medium of claim 11, the operationsfurther comprising: receiving, via an input device, a user's selectionto manually modify or delete a picture of the one or more pictures ofthe first or the second multi-directional picture; and modifying ordeleting the picture of the one or more pictures of the first or thesecond multi-directional picture in response to the receiving.
 14. Thenon-transitory computer storage medium of claim 11, the operationsfurther comprising: receiving, via an input device, a user's selectionto manually add a new link with a third multi-directional picture to theone or more links of the first or the second multi-directional picture;and adding the new link with the third multi-directional picture to theone or more links of the first or the second multi-directional picturein response to the receiving.
 15. The non-transitory computer storagemedium of claim 11, the operations further comprising: receiving, via aninput device, a user's selection to manually modify or delete a link ofthe one or more links of the first or the second multi-directionalpicture; and modifying or deleting the link of the one or more links ofthe first or the second multi-directional picture in response to thereceiving.
 16. A method comprising: (a) guiding a user to capture one ormore pictures from a first location of a represented object using apicture-taking device, the guiding of (a) performed by one or moreprocessor circuits; (b) generating a first multi-directional pictureincluding the one or more pictures from the first location, thegenerating of (b) performed by the one or more processor circuits; (c)guiding the user to capture one or more pictures from a second locationof the represented object using the picture-taking device, the guidingof (c) performed by the one or more processor circuits; (d) generating asecond multi-directional picture including the one or more pictures fromthe second location, the generating of (d) performed by the one or moreprocessor circuits; (e) determining that at least a subset of a pictureof the one or more pictures of the first multi-directional picture atleast partially matches at least a subset of a resized picture of theone or more pictures of the second multi-directional picture to indicatea line of sight from the picture of the one or more pictures of thefirst multi-directional picture to the picture of the one or morepictures of the second multi-directional picture, the determining of (e)performed by the one or more processor circuits; (f) adding a link withthe second multi-directional picture to the first multi-directionalpicture, the first multi-directional picture including one or morelinks, the adding of (f) performed by the one or more processorcircuits; (g) adding a link with the first multi-directional picture tothe second multi-directional picture, the second multi-directionalpicture including one or more links, the adding of (g) performed by theone or more processor circuits; and (h) storing the first and the secondmulti-directional pictures into a memory unit, the storing of (h) causedby the one or more processor circuits, wherein the memory unit stores atleast a plurality of multi-directional pictures, the plurality ofmulti-directional pictures interlinked corresponding to a shape of therepresented object to enable portrayal of the represented object of anyshape.
 17. The method of claim 16, further comprising: (i) receiving, bythe one or more processor circuits via an input device, a user'sselection to manually add a new picture to the one or more pictures ofthe first or the second multi-directional picture; and (j) adding thenew picture to the one or more pictures of the first or the secondmulti-directional picture, the adding of (j) performed by the one ormore processor circuits in response to the receiving of (i).
 18. Themethod of claim 16, further comprising: (i) receiving, by the one ormore processor circuits via an input device, a user's selection tomanually modify or delete a picture of the one or more pictures of thefirst or the second multi-directional picture; and (j) modifying ordeleting the picture of the one or more pictures of the first or thesecond multi-directional picture, the modifying or deleting of (j)performed by the one or more processor circuits in response to thereceiving of (i).
 19. The method of claim 16, further comprising: (i)receiving, by the one or more processor circuits via an input device, auser's selection to manually add a new link with a thirdmulti-directional picture to the one or more links of the first or thesecond multi-directional picture; and (j) adding the new link with thethird multi-directional picture to the one or more links of the first orthe second multi-directional picture, the adding of (j) performed by theone or more processor circuits in response to the receiving of (i). 20.The method of claim 16, further comprising: (i) receiving, by the one ormore processor circuits via an input device, a user's selection tomanually modify or delete a link of the one or more links of the firstor the second multi-directional picture; and (j) modifying or deletingthe link of the one or more links of the first or the secondmulti-directional picture, the modifying or deleting of (j) performed bythe one or more processor circuits in response to the receiving of (i).